簡體   English   中英

網絡工作者是否有自己的垃圾收集器?

[英]Do web workers get their own Garbage Collector?

我有一些處理不一定是cpu密集型的,但是會創建許多臨時對象,這會導致垃圾收集器在動畫等過程中出現干擾。

將臨時對象創建過程卸載到Web工作者是否有助於緩解這種情況? 換句話說 - GC打嗝是否會被隔離到Web工作線程並且不會影響我的主線程,或者GC是否會影響兩個線程?

ECMAScript規范沒有指定任何表單內存管理,垃圾收集僅在非規范部分中引用。

類似地,除了wrt之外,web worker規范沒有說明垃圾收集。 一些物體必須存活多久。

所以這是特定於實現的行為。 即使實現實現了每個工作者GC並避免了一般情況下的共享開銷,它們仍可能由於內存壓力而觸發所有工作程序的全局集合,尤其是在內存受限的系統上。

也就是說,你很可能會與工人實現一些GC隔離。 但是你必須注意避免工作者和主線程之間的消息傳遞開銷,因為序列化消息(對於結構化克隆算法)會產生額外的垃圾。 使用transferables或共享內存緩沖區可以避免這種情況。

暫無
暫無

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

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