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