dav*_*mer 6 javascript browser garbage-collection web-worker
我有一些处理不一定是cpu密集型的,但是会创建许多临时对象,这会导致垃圾收集器在动画等过程中出现干扰.
将临时对象创建过程卸载到Web工作者是否有助于缓解这种情况?换句话说 - GC打嗝是否会被隔离到Web工作线程并且不会影响我的主线程,或者GC是否会影响两个线程?
ECMAScript规范没有指定任何表单内存管理,垃圾收集仅在非规范部分中引用.
类似地,除了wrt之外,web worker规范没有说明垃圾收集.一些物体必须存活多久.
所以这是特定于实现的行为.即使实现实现了每个工作者GC并避免了一般情况下的共享开销,它们仍可能由于内存压力而触发所有工作程序的全局集合,尤其是在内存受限的系统上.
也就是说,你很可能会与工人实现一些GC隔离.但是你必须注意避免工作者和主线程之间的消息传递开销,因为序列化消息(对于结构化克隆算法)会产生额外的垃圾.使用transferables或共享内存缓冲区可以避免这种情况.
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |