如何性能测试JavaScript代码?
CPU周期,内存使用率,执行时间等?
补充:除了感知代码运行的速度之外,还有定量的测试JavaScript性能的方法吗?
-
探查器绝对是获取数字的好方法,但是根据我的经验,感知的性能对用户/客户端至关重要。例如,我们有一个带有Ext手风琴的项目,该项目已扩展为显示一些数据,然后显示一些嵌套的Ext网格。实际上,所有内容的渲染速度都非常快,一次操作都不需要很长时间,一次渲染的信息很多,因此用户感觉很慢。
我们不是通过切换到更快的组件或优化某种方法来“修复”此问题,而是首先渲染数据,然后使用setTimeout渲染网格。因此,信息首先出现,然后第二个网格弹出。总体而言,以这种方式花费了更多的处理时间,但是对于用户而言,感知性能得到了改善。
这些天来,Chrome的探查和其他工具的普及和易于使用,因为是
console.time(),console.profile()
和performance.now()
。Chrome还为你提供了一个时间轴视图,可以显示导致帧速率降低的原因,用户可能正在等待的位置等。查找所有这些工具的文档确实非常容易,你不需要一个SO答案。7年后,我仍然会重复最初答案的建议,并指出你可以让用户永远不会注意到的地方永远运行缓慢的代码,而在用户注意到的地方却可以运行非常快速的代码,他们会抱怨非常快的代码不够快。或者你对服务器API的请求花费了220毫秒。或类似的东西。重点仍然是,如果你将探查器拿出来去寻找要做的工作,就会找到它,但这可能不是用户需要的工作。