靠谱的软件下载站
当前位置:  IEfans/IE专区/IE相关/IE执行脚本的速度太慢?禁用IE的脚本调试设置

IE执行脚本的速度太慢?禁用IE的脚本调试设置

IE相关 互联网 2013-12-13 阅读(9826)
故事是这样的,工作专案有个大量使用JavaScript的重量级网页,稍做修改后在工作机 Windows 2008 R2 系统的IE10上测试耗时居然超过10秒,速度实在太慢了,本以为这是"IE特色",后来才发现事情没想像单纯。 在同事Windows 7的IE9浏览器上执行相同网页,至少比我的电脑快了一倍以上,我才意识到我的IE10。相许测试了Win8下的IE10、Win7 VM下的IE9,确认只有工作机Windows 2008R2上的IE10慢得像乌龟。 开启IE开发人员工具的Profiler功能测录Script执行过程,追到一段Kendo UI执行4万多笔资料DataBinding的逻辑,呼叫了15万次以上jQuery.isPlainObject函数及jQuery.type,耗时1.5秒,是速度如龟的根源: 开启IE开发人员工具的测试结果 对照Win8下的IE10,同样的执行次数却只要210ms,而且笔电CPU是i5,不如工作机是i7,速度却快上N倍,很不合理。 开启IE开发人员工具的测试结果2 抽丝剥茧,组出了一个可重现问题的迷你测试:




JS Bin


 
  

这个测试在问题IE执行要耗时400ms以上,而一般的IE大概都在50ms以下,在Facebook专页PO文请大家帮测,得到很多回馈(特此感谢!),只有两位跟我一样遇到慢郎中,大部分的人都是50ms以内,由此推测应是环境问题使然。 继续将Script精简到完全不用jQuery,纯粹只呼叫一个永远return true的函数5万次(程式如下),猜猜怎么了? 问题IE要耗时100ms以上,正常IE只要---0ms!!! 这个差异可大了。




JS Bin


  

试过关闭所有IE加载项,速度不见改善。但我做了个很关键的对照测试,用另一个帐号登入问题IE所在的Windows 2008 R2,开IE测试速度是正常的,由此可断定IE本质没问题,问题出在不正确的设置。 于是我打开IE的高级设置选项全力进攻,试着开关不同设置,终于找出关键: 关键居然在“禁用脚本调试”的设置,停用该选项,问题IE的执行速度立刻变成0ms;而在正常IE浏览器的启用脚本调试,速度就立刻上升到近100ms。至此,困扰我近24小时的问题终于找到解决方法。 知道这个设置N年了,第一次发现它对执行效能影响这么大!! 当然,连续执行同一个JavaScript函数十万次的情境并不常见,所以在实务上它对效能的干扰并不会像我的案例被如此放大。但有一点不会错: 如果你希望你的IE快一点,平时请保持"禁用脚本调试"状态(注意: 勾选起来是停用),需要脚本调试时再调整。 via:黑暗执行绪

标签:IE相关速度调试

Copyright © 1998-2017 www.iefans.net All Rights Reserved 湘ICP备13012168号-17