如何测试JavaScript代码?

如何测试JavaScript代码?

CPU周期,内存使用,执行时间等?

补充:除了对代码运行速度的感知之外,有没有一种在JavaScript中测试性能的量化方法?


千巷猫影
浏览 671回答 3
3回答

繁华开满天机

分析器绝对是获取数字的好方法,但在我的经验中,感知性能对用户/客户端来说才是最重要的。例如,我们有一个带有Ext手风琴的项目,它扩展为显示一些数据,然后是一些嵌套的Ext网格。所有的东西都呈现得非常快,没有一个操作花了很长时间,只有大量的信息同时呈现,所以用户感觉很慢。我们“修正”了这个问题,不是通过切换到更快的组件,也不是通过优化某些方法,而是先呈现数据,然后用setTimeout呈现网格。因此,信息首先出现,然后网格会弹出第二秒钟。总的来说,这样做花费了更多的处理时间,但是对于用户来说,感知到的性能得到了改善。这些天来,Chrome分析器和其他工具是普遍可用和易于使用的,如下所示console.time(), console.profile(),和performance.now()..Chrome还提供了一个时间线视图,它可以显示什么正在扼杀您的帧速率,用户可能正在等待的位置等等。为所有这些工具找到文档是非常容易的,您不需要这样的答案。7年后,我仍将重复我最初答案中的建议,并指出,在用户不会注意到的情况下,您可以永远运行缓慢的代码,而在它们运行的地方运行的代码相当快,他们会抱怨代码不够快。或者您对服务器API的请求花费了220 ms。或者其他类似的东西。关键是,如果你拿出一个分析器去找工作去做,你会找到它,但它可能不是你的用户需要的工作。

蛊毒传说

我确实同意,感觉到的表现才是最重要的。但有时我只是想找出哪种方法做某事更快。有时这种差别是巨大的,值得知道。您可以只使用javascript计时器。但是我通常使用本机Chrome(现在也在Firefox和Safari中)devTool方法获得更一致的结果。console.time()&nbsp;&&nbsp;console.timeEnd()我如何使用它的例子:var&nbsp;iterations&nbsp;=&nbsp;1000000;console.time('Function&nbsp;#1');for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;iterations;&nbsp;i++&nbsp;){ &nbsp;&nbsp;&nbsp;&nbsp;functionOne();};console.timeEnd('Function&nbsp;#1')console.time('Function&nbsp;#2');for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;iterations;&nbsp;i++&nbsp;){ &nbsp;&nbsp;&nbsp;&nbsp;functionTwo();};console.timeEnd('Function&nbsp;#2')

万千封印

我们可以永远用简单日期对象度量任意函数所占用的时间.var&nbsp;start&nbsp;=&nbsp;+new&nbsp;Date();&nbsp;&nbsp;//&nbsp;log&nbsp;start&nbsp;timestampfunction1();var&nbsp;end&nbsp;=&nbsp;&nbsp;+new&nbsp;Date();&nbsp;&nbsp;//&nbsp;log&nbsp;end&nbsp;timestampvar&nbsp;diff&nbsp;=&nbsp;end&nbsp;-&nbsp;start;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript