问题描述
我正在使用 JavaScript 构建一个以 60 FPS 运行的游戏,并注意到发生了大量垃圾回收(每 1.5 秒 7.2 MB,请参阅下面的 Chrome DevTools),这对帧速率有显着影响。
>我已经使用分配时间轴来查看每帧添加到内存中的内容。如下所示,每帧分配了 4.1 kB。所以我希望看到每 1.5 秒收集 369 kB 的垃圾。
为什么两者之间会有一个数量级的差异?我一直在使用分配时间线来减少使用的内存(最初每帧 18 kB)。但是,在查看“性能”选项卡时,这几乎没有影响。
有什么方法可以知道垃圾收集的内容,因为分配时间线似乎不正确?
附加信息
-
我尝试删除游戏中的对象数量(在数组中)这确实对性能选项卡产生了很大的影响。但我真的很想在 DevTools 的某处看到这个数组,这样我就可以优化它。
-
我尝试在屏幕上禁用渲染,但这没有影响。所以GC来自游戏代码。