我正在使用canvas制作游戏,但遇到了奇怪的Chrome行为,无法确定原因。有时候当我加载游戏时,Chrome任务管理器会报告每秒分配+300MB的内存,仅需10秒左右就可以增加几GB的内存,直到标签崩溃,这种情况一直持续下去。
当我尝试运行javascript分析器时,问题停止了。当我在运行分析器的标签中加载时,它是完全稳定的。当问题发生时,我启动分析器,内存从1.5GB立即降至稳定的40MB。堆快照显示了我期望的游戏稳定运行的情况。
我的游戏正在运行
当我尝试运行javascript分析器时,问题停止了。当我在运行分析器的标签中加载时,它是完全稳定的。当问题发生时,我启动分析器,内存从1.5GB立即降至稳定的40MB。堆快照显示了我期望的游戏稳定运行的情况。
我的游戏正在运行
window.setInterval
(我已经尝试过requestAnimationFrame
和递归setTimeout
,但问题仍然存在),并且如果设置得高,则更容易出现此问题,这意味着当我将游戏设置为30FPS时,很少会出现此问题,而当我将其设置为60FPS时,超过一半的时间都会出现此问题。这只会在Chrome上发生,Firefox似乎没问题。
当Chrome似乎只在运行分析器时进行垃圾回收时,该如何调试?
此外,我注意到当我将FPS推到60时,我的一些动画和键盘输入有点奇怪。我认为这可能有关,但Firefox也存在此问题。