我的pixi.js游戏发生了错误。它每秒分配1MB,3秒后GS发布它。等等,无限。
当然我读到了这一点,但似乎Chrome Tools无法检测到问题 - 当我记录分配时间轴时 - 它显示了一些罕见的尖峰,当选择时 - 显示一些功能,但也有不断的微小内存分配的峰值,没有显示任何内容。我选择它们,在功能列表中我什么也看不见!
在我的逐帧代码中,我优化了所有内容 - 当我关闭pixi时 - 内存不会移动。只有当我做pixi渲染每一帧的场景时 - 然后这个恒定的分配/释放开始并且永远不会结束。在PC上没问题,但是在移动设备上每隔10秒就会冻结5秒钟 - 无法播放。
是否有人在代码中遇到频繁的分配/ GC?如果是的话 - 你是如何调试它的?你是如何解决它的?
答案 0 :(得分:0)
根据我的经验,Pixi.js即使有空场景也有GC峰值,你可以自己测试一下。随意在他们的回购中打开github问题。我相信他们已经就泄漏进行了一些讨论。但我不认为pixi本身应该影响那么多,除非你有成千上万的对象。
你确定你做了一切吗?您应该在代码中滥用对象池模式和预分配。当您需要不断创建/删除对象(像子弹一样)时尤其如此。 一般信息 https://www.html5rocks.com/en/tutorials/speed/static-mem-pools/
UPD: 对于调试铬工具是非常好的。 https://developers.google.com/web/tools/chrome-devtools/memory-problems/