我的小精灵.js游戏出了点问题。它每秒分配1MB,3秒后GS释放它。等等,无限。
当然,我读过这篇文章,但似乎Chrome工具无法检测到问题-当我记录分配时间线时-它显示了一些罕见的峰值,当选择时-显示一些功能,但是内存分配的持续微小峰值,不显示任何内容。我选择了它们,在功能列表中我什么也没看到!
在我的一帧代码中,我逐帧优化了所有内容 - 当我关闭 pixi 时 - 内存不会移动。只有当我在每一帧上渲染 pixi 场景时 - 然后这种不断的分配/释放才会开始并且永远不会结束。在 PC 上还可以,但在移动设备上,它每 10 秒冻结 5 秒 - 无法播放。
有没有人在他们的代码中遇到频繁的分配/GC?如果是 - 你是如何调试它的,你是如何修复它的?
你确定你做了一切吗?您应该在代码中滥用对象池模式和预分配。当您需要不断创建/删除对象(如项目符号(时尤其如此。 基本信息 https://www.html5rocks.com/en/tutorials/speed/static-mem-pools/
更新: 用于调试chrome工具几乎没问题。 https://developers.google.com/web/tools/chrome-devtools/memory-problems/