2015-04-03 13 views
8

C'è un modo per ottenere Emscripten per trasferire e non copiare i dati tra gli operatori Web e il thread principale dell'interfaccia utente?Trasferimento dei dati utilizzando Emscripten Worker API senza copiare

Emscripten ha uno API that manages communication between Web Workers, che a mio avviso utilizza solo il meccanismo postMessage/onmessage sotto il cofano. Cercando nella fonte per il Emscripten Worker API, sembra che non usi l'opzione transferList quando chiama postMessage, e così i dati vengono copiati.

In realtà, penso che venga copiato almeno due volte: prima dal browser tra i thread e quindi uno second time by Emscripten per farlo entrare nello spazio-heap gestito da Emscripten. E se vuoi che i dati continuino a sopravvivere sul lato ricevente dopo la richiamata, dovrebbe essere copiato una terza volta, come according to the docs i dati passati al callback sono garantiti solo durante la richiamata.

Ripetere la mia domanda dall'alto: c'è un modo per ottenere Emscripten per evitare tutta questa copia trasferendo, e non copiando, i dati tra web worker e il thread principale dell'interfaccia utente?

risposta

Problemi correlati