首页 > 解决方案 > 防止 javascript 将数组释放到垃圾收集器

问题描述

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

显示垃圾收集如何导致帧速率降低的图表 为了防止这些 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?

标签: javascriptarraysmemorygarbage-collection

解决方案


推荐阅读