JavaScript · Senior · Запитання 13 з 75
Навіщо передавати ArrayBuffer воркеру як transferable: postMessage(buf, [buf])?
- ✓Правильна відповідь: Володіння передається без копіювання; у вихідному потоці буфер стане порожнім
- 2Буфер стає спільним, і обидва потоки бачать зміни одне одного
- 3Буфер стискається перед надсиланням, що зменшує витрату пам'яті
Пояснення
Копіювання великих даних дороге. Transfer миттєво передає пам'ять, а у відправника byteLength стане 0. Справжня спільна пам'ять - SharedArrayBuffer з Atomics, але він потребує cross-origin isolation (заголовки COOP/COEP).