当我使用 Chrome 中的开发者工具收集 JavaScript CPU 配置文件时,我收到了两个关于函数的神秘警告:
- 未优化:优化次数过多
- 未优化:内联摆脱困境
这些到底是什么意思?有哪些可能的解决方案?
我见过的另一个是未优化:TryCatchStatement,但这是有道理的。解决方案是删除 try-catch。
到目前为止,我发现的最接近的解释尝试是 - https://github.com/GoogleChrome/devtools-docs/issues/53
最佳答案
我认为“未优化:优化次数过多”指的是 Chrome 优化器不断重新优化某个功能。
https://groups.google.com/forum/#!topic/v8-users/_oZ4fUSitRY
如果我没记错的话,有几件事可能导致这种情况,包括改变类型的参数,我会尝试挖掘链接。
这个有点神秘,修复将取决于您的代码。我的代码中多次出现此问题,有时我无法修复它。
'未优化:内联被救出'似乎在您发布的链接中得到了回答。
对于 try/catch,可以在这个 github 页面上找到一个非详尽但有用的 Chrome 优化怪癖列表:
https://github.com/petkaantonov/bluebird/wiki/Optimization-killers
此页面提到 try/catches 当前未优化:
- 生成器函数
- 包含 for-of 语句的函数
- 包含 try-catch 语句的函数
- 包含 try-finally 语句的函数
- 包含复合 let 赋值的函数
- 包含复合 const 赋值的函数
- 包含包含 proto 或 get 或 set 声明的对象字面量的函数。
关于javascript - Chrome Profiler 中的 "Not optimized"警告是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509262/