JavaScript · Senior · Pytanie 13 z 75
Po co przekazywać ArrayBuffer do workera jako transferable: postMessage(buf, [buf])?
- ✓Poprawna odpowiedź: Własność jest przenoszona bez kopiowania; bufor w wątku źródłowym staje się pusty
- 2Bufor staje się współdzielony i oba wątki widzą nawzajem swoje zmiany
- 3Bufor jest kompresowany przed wysłaniem, co zmniejsza zużycie pamięci
Wyjaśnienie
Kopiowanie dużych danych jest drogie. Transfer przekazuje pamięć natychmiast, a byteLength u nadawcy staje się 0. Prawdziwa pamięć współdzielona to SharedArrayBuffer z Atomics, ale wymaga izolacji cross-origin (nagłówki COOP/COEP).