Google Chrome开发人员工具包速度很慢
我一直在使用Google Chrome的开发工具包(元素检查,堆栈跟踪,javascriptdebugging等),并取得了巨大的成功。
但是,大约两个星期前,它突然变得非常缓慢。 例如,当我用鼠标右键单击UI中的一个元素,然后单击“检查元素”,或者当我简单地按下F12时,代码窗口需要30-45秒才能出现。 它曾经发生在不到一秒钟。
有其他人遇到这个问题吗? 如果是这样,你能纠正吗? 怎么样?
提前致谢!
马特
我有同样的问题,尝试同样的解决scheme没有运气,直到我解雇了procmon,并看到Chrome实际上正在阅读我的整个项目文件夹(这是几十万文件价值)。
开发工具“设置”应用程序的“ 工作区/文件夹”部分中提供了该文件夹的引用。 删除参考解决了问题。
这是通过在Chrome中清除caching(临时文件,cookie等)来解决的。 不知道根本原因是什么,但解决了这个问题。
我曾经也有过一样的问题。
我的问题是,我使用browserify创build一个大的包(约92K线)宽度SOURCEMAP。 browserify app.js -d -o bundle.js
。
我通过拆分我的bundle.js
来解决它。
我通过添加
--require [module name]
将所有节点模块导出到一个单独的文件(modules.js
)中:
browserify -r react -r lodash -r three > build/modules.js
然后通过添加
--external [module name]
创build没有外包模块的--external [module name]
。
browserify -t babelify -x react -x lodash -x three src/app.js > build/bundle.js
( -t babelify
,因为我在我的项目中使用了react
/ JSX
。)
注意 :你必须在
module.js
之前在你的html中包含bundle.js
。
我的bundle.js
从bundle.js
到bundle.js
行;-)
编辑 :要创build一个没有外部模块(
node_modules
)的包,你也可以使用--no-bundle-external
而不是[-x NODE_MODULE_NAME]*
。编辑#2 :当您在您的项目中使用包含许多子模块的模块时,
-r|-x [MAIN_MODULE_NAME]
不会要求排除子模块。
使用react-bootstrap
例子:
react-bootstrap
包含许多子模块, react-bootstrap/lib/[submodule]
。
browserify -r react-bootstrap > build/modules.js
将不需要例如Button
( react-bootstrap/lib/Button
)模块。 所以…
…如果你正在使用
browserify --no-bundle-external src/app.js > build/bundle.js
…您无法在您的应用中使用Button
,因为--no-bundle-external
不包括所有节点模块,包括子模块。 所以不要忘记要求所有必要的子模块:
browserify -r react-bootstrap -r react-bootstrap/lib/Button > build/modules.js
注 :此外,为了提高性能,您可以使用
exorcist
将源代码映射到一个单独的文件。 安装它:
npm install --save-dev exorcist
并更改您的browserify
命令:
browserify --no-bundle-external src/app.js | exorcist build/bundle.js.map > build/bundle.js
感谢exchcist暗示
excorcist
。 并显示他的答案更多的细节。
在Linux(RHEL 7)上使用Chrome 46.x / 47.x,没有任何build议的解决scheme为我工作。 所做的工作是在高级浏览器设置中禁用“可用时使用硬件加速”设置。
我注意到在进程监视器/列表中,Chrome渲染器占用了大量CPU,如上所述,甚至在debugging器中放置断点或逐句执行语句也需要10多秒!
我已经把它作为对马塞尔答案的评论join了,但是因为它对我有很大的不同,所以我觉得把它作为一个单独的答案是值得的:
我有一个内嵌的JS源文件,总大小约2-3MB(在开发过程中未压缩)。 在页面加载时,Chrome的速度令人难以忍受(开发工具打开)。 大约20秒后,当文件和内联源地图被parsing时,事情或多或less都会正常。 此外,Chrome 43(Ubuntu上)的更新也变得更糟。
只要我把源地图放在一个单独的文件中 ,一切都恢复正常了。 页面加载速度变慢了。 来源是即时可用的。
由于我用browserify
构build, 驱魔是我用过的。 更具体地说:在watchify
中描述的-o
参数中加上watchify
。
我有这样的问题; 打开debugging窗口很慢(10-20秒),而且每次我跨越代码,无论多么简单,我都经历了很长的延迟(10-20秒)。
对我来说,原因是我有一些大的数组(1000个条目,10个MB数据)。 debugging器预先渲染所有范围内的数据(包括所有的全局variables,一切都挂在窗口上,所有参数调用堆栈中的所有函数),以显示在“范围variables”窗口中。 如果数据树很大,那么每一步都需要debugging器很长时间才能重新计算variables检查树。
(a)将大数组移动到非全局范围,将其保持在Window之外,然后(b)将我的程序的其余部分移动到单独的范围中,从而解决了这个问题。 像这样:
<script> (function() { // large variable in stack scope, stepping in any // code called from here will be slow var hugeArray = [...]; calculateHugeArray(hugeArray); })(); (function() { // large variable now out of scope, so Chrome won't // try to display it in the "Scope Variables" // window. This makes debugging and stepping faster. doMoreThings(); })(); </script>
不幸的是,如果你需要遍历引用大数组的代码,那么我没有解决方法。
我的解决scheme是删除一批在我的计算机上本地运行并连接到IIS的项目。 刚刚删除的文件夹/项目,我不使用很多或现在。 删除了25GB的数据,现在我的开发工具栏的作品就像魅力!
清除caching和所有隐私数据也解决了我的问题:-)
这是在未来的版本中修复的: https : //code.google.com/p/chromium/issues/detail?id=485052
我的转录文件包括源地图大约是5MB。 我已经尝试了这个post中的所有解决scheme,只看到了边缘的改善。 我最终放弃并卸载并重新安装了Chrome。 希望我马上就做到了,debugging器中的源代码映射从大约15秒变为3秒。