0

Ich habe eine Web-App, und es hat einige Variablen im Hauptprogramm. Diese Variablen sind Objekte mit vielen Strings oder Arrays in ihnen.Wie können Variablen von Hauptthread- und Web-Arbeitern in Javascript geteilt werden?

Aber dann macht es 4 Webarbeiter. Dann sendet es das riesige Objekt als Nachricht an jeden Web-Mitarbeiter. Dies klont grundsätzlich das Objekt 4 Mal.

Ich möchte den neuen sharedarraybuffer-Datentyp http://lucasfcosta.com/2017/04/30/JavaScript-From-Workers-to-Shared-Memory.html verwenden, damit die Web Worker auf das Objekt vom übergeordneten Objekt zugreifen können, sodass es speichereffizienter ist.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer

Wie kann ich das tun? Das Beispiel scheint es zu initialisieren, indem es basierend auf der Anzahl der benötigten Bytes erstellt wird. Ich verstehe nicht, wie ich das berechnen würde.

Weiß jemand, wie man das macht?

Dank

Antwort

0

Sie, dass nicht wirklich können Sie für die Datenstruktur verwenden, beschreiben. Ich meine theoretisch Sie könnten Getter und Setter verwenden, die auf Byte-Offsets im zugrunde liegenden Shared-Byte-Array beziehen würde, aber das wäre wirklich ein kompliziertes Projekt, höchstwahrscheinlich nicht die Mühe wert, es sei denn Sie tun es aus Spaß.

Sie müssen Ihre Datenstruktur überdenken, wenn Sie Shared Memory verwenden möchten. Sie müssen sicherstellen, dass es eine konstante Größe hat und Sie es vereinfachen müssen.

Versuchen Sie Profiler zu verwenden, um zu sehen, welcher Teil Ihres Objekts am größten ist, und versuchen Sie, nur diesen Teil zu teilen.

Verwandte Themen