[英]JavaScript: Web Worker and Typed Arrays
我有一個web worker(以new Worker()
開頭)進行一些處理,並且應該返回一個Float32Array
。
然而,似乎在worker postMessage()
的數據,它通過序列化和desirialization到JSON,我收到消息時最終得到的是一個簡單的javascript Array
(具有原始類型數組的所有屬性)
一個簡單的工作就是從javascript數組中重新創建類型化數組,但這樣做很浪費,占用時間和內存。
有一個更好的方法嗎? 某種方式告訴JSON反序列化實例化Float32Array
而不是javascript數組? 或者另外傳輸二進制數據的方法?
所有支持worker(IE10除外)的瀏覽器都支持所謂的可轉移對象,這意味着如果你有一個數組緩沖區(即獲取你的類型數組的.buffer屬性),你可以作為postMessage的第二個參數包含一個數組緩沖區列表你想轉回所有權。 這比復制它快得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.