簡體   English   中英

JavaScript:Web Worker和Typed Arrays

[英]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的第二個參數包含一個數組緩沖區列表你想轉回所有權。 這比復制它快得多。

更新:目前這似乎是一個Chrome錯誤:

http://code.google.com/p/chromium/issues/detail?id=73313

Firefox 4中保留了類型化數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM