繁体   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