2015-04-03 6 views
8

Gibt es eine Möglichkeit Emscripten zu übertragen, und nicht kopieren, Daten zwischen Web-Arbeitern und dem Haupt-UI-Thread zu bekommen?Daten übertragen, ohne Emscripten Worker API zu Kopieren

Emscripten hat eine API that manages communication between Web Workers, die ich glaube einfach verwendet die postMessage/onmessage Mechanismus unter der Haube. Suchen Sie in der Quelle für die Emscripten Worker API, scheint es, dass es nicht nicht die transferList Option verwenden, wenn es postMessage ruft, und so werden die Daten kopiert.

Eigentlich, ich denke, es wird mindestens zweimal kopiert: zuerst durch den Browser zwischen den Threads, und dann eine second time by Emscripten, um es in den Emscrypten-verwalteten Heap-Raum zu bekommen. Und wenn Sie die Daten wollen weiter auf der Empfängerseite nach dem Rückruf zu überleben, müßte es ein drittes Mal kopiert werden, da according to the docs die an der Callback übergebenen Daten nur während des Rückrufs existieren gewährleistet ist.

Wiederholung meiner Frage von oben: Gibt es eine Möglichkeit Emscripten zu bekommen all diesen Kopiervorgang zu vermeiden, indem sie die Übertragung, und nicht das Kopieren von Daten zwischen Web-Arbeitern und dem Haupt-UI-Thread?

Antwort

Verwandte Themen