Sui.

Beitrag

Teile dein Wissen.

BigSneh.
Jul 25, 2025
Experten Q&A

Wie optimiere ich meinen Move-Code für die parallele Ausführung?

Ich weiß, dass Sui die parallele Transaktionsverarbeitung unterstützt, aber ich bin mir nicht sicher, wie ich meinen Move-Code strukturieren soll, um ihn zu nutzen. Irgendwelche Tipps?

  • Sui
  • SDKs and Developer Tools
  • Move
4
6
Teilen
Kommentare
.

Antworten

6
290697tz.
Jul 25 2025, 13:42

Bitteschön!

  1. Verwenden Sie einzigartige eigene Objekte Gestalten Sie Ihre Smart Contracts so, dass jeder Benutzer oder jedes Asset sein eigenes, einzigartiges Objekt hat. Sui kann Transaktionen, die mit verschiedenen Objekten interagieren, parallelisieren.

  2. Vermeiden Sie Global Mutable State Verwenden Sie keine gemeinsam genutzten veränderlichen Objekte, sofern dies nicht erforderlich ist. Gemeinsam genutzte Objekte können zu Konflikten führen und die Parallelität verringern.

  3. Objektabhängigkeiten minimieren Begrenzen Sie die Anzahl der Objekte, die eine Funktion liest oder schreibt. Je weniger sich überlappende Objekte, desto wahrscheinlicher ist es, dass Transaktionen parallel ausgeführt werden können.

  4. Entwerfen Sie zustandslose Einstiegspunkte Wenn möglich, lassen Sie Ihre Eingabefunktionen nur auf ein oder zwei Objekte anwenden. Dadurch wird die Wahrscheinlichkeit von Sperrkonflikten zwischen Transaktionen reduziert.

  5. Verwenden Sie unveränderliche oder schreibgeschützte Daten Verwenden Sie, wenn möglich, &T-Referenzen, um Daten zu lesen, anstatt sie zu mutieren. Mehrere Transaktionen können dasselbe Objekt parallel lesen.

  6. Vermeiden Sie den benutzerübergreifenden Objektzugriff Lassen Sie nicht zu, dass die Transaktion eines Benutzers das Objekt eines anderen Benutzers ändert. Dadurch wird die Parallelität unterbrochen und das Risiko erhöht.

  7. Simulieren und testen Verwenden Sie die Localnet- und Transaktionsblöcke von Sui, um viele Operationen zu simulieren. Überwachen Sie, wie Sui mit der parallelen Ausführung umgeht, und passen Sie Ihr Objektmodell an.

Indem Sie die Objektnutzung isolieren und Mutationen auf eigene Ressourcen lokalisieren, ermöglichen Sie Ihrer App eine bessere Skalierung und schnellere Ausführung auf der parallelen Laufzeit von Sui.

1
Beste Antwort
Kommentare
.
Paul.
Paul4340
Jul 31 2025, 15:33

Um Ihren Move-Code für die parallele Ausführung auf Sui zu optimieren, müssen Sie sicherstellen, dass Ihre Transaktionen unabhängig sind. So kannst du das machen:

1.Vermeiden Sie Shared State: Stellen Sie sicher, dass Ihre Transaktionen nicht von demselben Objekt abhängen. Wenn sie das tun, kann Sui sie nicht parallel ausführen. Wenn Sie beispielsweise mehrere Benutzerdatensätze aktualisieren, stellen Sie sicher, dass jede Aktualisierung in einer eigenen Transaktion erfolgt.

2.Arbeit in unabhängige Aufgaben aufteilen: Anstatt alles in einer großen Transaktion zu erledigen, teilen Sie sie auf. Wenn Sie beispielsweise mehrere Objekte bearbeiten, teilen Sie die Arbeit so auf, dass jedes Objekt in einer separaten Transaktion behandelt wird.

3.Separate Objekte verwenden: Wenn Sie Objekte ändern, stellen Sie sicher, dass jede Transaktion auf einem anderen Objekt funktioniert. Sui kann sie parallel verarbeiten, sofern sie sich nicht gegenseitig stören.

4.Batch-unabhängige Vorgänge: Wenn möglich, stapeln Sie ähnliche Aufgaben (wie Übertragungen oder Aktualisierungen) in kleinere, unabhängige Transaktionen. Auf diese Weise können sie gleichzeitig ausgeführt werden.

5.Testen und Überwachen: Sobald Sie Ihren Code aufgeteilt haben, testen Sie ihn und sehen Sie, wie Sui damit umgeht. Verwenden Sie die Tools von Sui, um zu überprüfen, ob die parallele Ausführung wie erwartet erfolgt.

Kurz gesagt, strukturieren Sie Ihren Code so, dass jede Transaktion unabhängig ist und Sui den Rest erledigt!

8
Kommentare
.
Owen.
Owen4662
Jul 30 2025, 17:08

Um Move-Code für die parallele Ausführung auf Sui zu optimieren, entwerfen Sie Ihre Anwendung so, dass der gemeinsame Status minimiert wird. Verwenden Sie eigene Objekte anstelle von gemeinsam genutzten Objekten, da Transaktionen, die auf eigenen Objekten ausgeführt werden, ohne Koordination parallel ausgeführt werden können. Vermeiden Sie Engpässe, indem Sie Daten so strukturieren, dass Benutzer mit unabhängigen Objekten interagieren können (z. B. Tresore pro Benutzer). Verwenden Sie Tableoder Bagfür große Sammlungen, anstatt Daten direkt in Strukturen einzubetten. Dies reduziert die Objektgröße und die Anzahl der Konflikte und ermöglicht einen höheren Durchsatz. Stellen Sie sicher, dass Transaktionen nicht von demselben Objekt abhängen, sofern dies nicht erforderlich ist, da dies eine Serialisierung erzwingt.

7
Kommentare
.
HeavenSky.
Sep 7 2025, 17:28

Hey! The key is to design your contracts around owned objects. Transactions that operate on disjoint sets of owned objects can execute in parallel without conflict. Shared objects, especially those frequently written to, act as global mutexes and can become bottlenecks. So, aim to have most user-specific data or state exist within objects owned by individual users or other distinct entities, rather than centralizing everything in a few shared objects. Immutable objects are also excellent for parallelism as they can be read concurrently by many transactions. Think about how to partition your data so different transactions touch different parts.

7
Kommentare
.
SuiLover.
Jul 27 2025, 07:43

*Um Move-Code für die parallele Ausführung auf Sui zu optimieren, vermeiden Sie unnötige gemeinsame Objektverweise. Verwenden Sie in Transaktionen unterschiedliche, eigene Objekte, um unabhängige Ausführungspfade zu ermöglichen. Minimieren Sie bei der Gestaltung intelligenter Verträge die Abhängigkeit vom globalen oder gemeinsamen Status. Nutzen Sie eine feinkörnige Ressourcenpartitionierung, um Konflikte zu vermeiden. Profilieren und testen Sie mithilfe von Sui-Tools, um Engpässe zu identifizieren und zu beheben. *

2
Kommentare
.

Weißt du die Antwort?

Bitte melde dich an und teile sie.