Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
测量Javascript应用程序的CPU负载_Javascript_Jquery_Performance - Fatal编程技术网

测量Javascript应用程序的CPU负载

测量Javascript应用程序的CPU负载,javascript,jquery,performance,Javascript,Jquery,Performance,我需要测量额外Javascript事件绑定的性能开销(使用jQuery live),这种开销可能会增加CPU负载,并且很难从执行时评测中发现 我如何衡量一个Javascript应用程序的两个不同版本之间的CPU负载差异?我认为这种衡量将非常具体。如果您对它还满意,那么看看Chrome浏览器中的内置开发人员工具。有一个选项可以记录性能并在以后比较结果。下面是(看看底部的评测和优化视频)。除了@Ivan关于的答案,我建议您也看看Chrome的扩展。另一个分析选项是。Resig有一个很好的解决方案。这

我需要测量额外Javascript事件绑定的性能开销(使用jQuery live),这种开销可能会增加CPU负载,并且很难从执行时评测中发现


我如何衡量一个Javascript应用程序的两个不同版本之间的CPU负载差异?

我认为这种衡量将非常具体。如果您对它还满意,那么看看Chrome浏览器中的内置开发人员工具。有一个选项可以记录性能并在以后比较结果。下面是(看看底部的评测和优化视频)。

除了@Ivan关于的答案,我建议您也看看Chrome的扩展。

另一个分析选项是。Resig有一个很好的解决方案。这是特定于IE的(但是…在大多数情况下,这是性能最差的一个,所以…)


看一看,这里所有的建议都很好,如果你正在研究IE问题(一些内部网应用被锁定),那么dynaTrace是一个优秀的、仍然免费的工具。

Chrome开发工具很好,但是因为Chrome不是一个浏览器,你永远都不必担心JS性能,而且它优化了很多东西,对于发现其他浏览器的瓶颈没有多大帮助。 这可以让你分析,所以除了通常的Firebug分析工具之外,你可能会发现这很有用

但是关于您的情况,我要说的是,仅仅绑定一个事件不会导致太多的CPU负载,更多的是内存问题,但是您不必担心,除非您在页面上做了一些不同寻常的事情

另外,如果您特别关心jQuery.live函数,请让我快速解释它的工作原理: 假设你做了
$('#linksWrap a').live('click',fn)

  • 这将创建一个且仅创建一个事件处理程序,并将其附加到
    #linkswrap
  • 当您单击其中一个链接时,单击事件会在DOM树中弹出,最终到达
    #linkswrap
  • live检测它实际上来自哪个链接。此信息位于浏览器事件对象中
  • jQuery.live在所单击链接的上下文中应用
    fn
如你所见,它实际上相当有效。浏览器只附加一个事件,所以内存使用率很低,也不需要经常检查新元素,它以一种很酷的方式使用事件冒泡


事实上,有人可能会说,如果您将数千个事件附加到一个页面,那么假设您使用的是好的选择器,那么.live方法可能会更有效。(例如,
.something.foo.bar.baz
需要大量的遍历和冒泡,但是
#parentoflinks a.links
会很快)

要想用一种非科学但快速的方式来比较CPU负载,你可以启动Chrome的任务管理器,并在不同的选项卡/窗口中打开这两个版本。如果您正在进行优化,它不会对您有所帮助,但它可以一目了然地告诉您新版本是否占用更少的CPU