防止javascript将数组释放到垃圾收集器

时间:2019-02-05 19:00:18

标签: javascript arrays memory garbage-collection

在用javascript创建数组然后删除指向该数组的所有指针时,垃圾收集器最终将释放该数组使用的内存。问题在于,在想要稳定帧率的游戏中,垃圾回收会导致帧率停滞。

Graph showing how the garbage collection cause reduction in framerate 为了防止这些fps下降,我想提前创建阵列,但是问题是我不知道阵列应该有多大。我假设,从长度为0的数组开始,然后增加它的长度将导致在数组填满时分配和释放内存,但是将使用pop()之类的操作或设置数组的长度来减少数组的长度设为0会导致内存重新分配,并把工作交给垃圾回收器?

let someArray = [];
// ... Inside game loop...
someArray.push(newElement); // Here memory might be re-allocated if the array increases too much.
// ...
someArray.length = 0; // Could this cause the array to be re-allocated to a smaller chunk of memory? Could this trigger garbage collection?

0 个答案:

没有答案