Chrome的JavaScript分析器中的“任务”需要更长的时间,但没有调用任何函数

问题描述 投票:0回答:1

我正在用JavaScript编写游戏,并且遇到性能问题。该程序启动一个计时器,然后在回调中渲染图形的一帧,并为下一帧启动另一个计时器。启动定时器后,主函数才返回。它开始很好,但是我的计时器回调以越来越长的间隔触发。

[在Chrome的性能分析器中查看调用时,当程序最初开始运行时,我可以看到我的超时回调已完成,剩余了很多时间。

Timer function called at correct interval

我的计时器功能返回后,“任务”栏保持很短的时间,并且在计时器调用之间存在空闲时间。但是,运行几分钟后,程序的“任务”部分开始变得越来越长。

Long delay in Task after timer function returns

超时功能仍然可以在相同的时间内快速完成,并且没有任何代码在计时器间隔之外执行。有没有办法找出事件探查器“任务”部分中正在发生的事情,或者甚至更好地了解导致此问题的原因的任何想法?

谢谢。

javascript performance timer profiler
1个回答
0
投票

该问题最终在函数中而不是save()和restore()中执行了两次画布上下文save()。令人惊讶的是,它并没有显示为内存使用量的增加。垃圾收集每隔几秒钟运行一次,并恢复到相同的数量,但是事件探查器中的“任务”功能调用花费的时间越来越长。甚至更陌生的是它是从我的计时器函数返回的,而不是在层树或组合任务函数之类的。

© www.soinside.com 2019 - 2024. All rights reserved.