找到未经V8优化的相应JS源代码

时间:2016-09-19 14:53:36

标签: javascript node.js performance v8 jit

我尝试优化node.js应用程序的性能,因此我正在分析V8的JIT编译器的行为。

通过node --trace_deopt --trace_opt --code_comments --print_optcode ...运行应用程序时,输出包含许多重复行,如下所示:

[didn't find optimized code in optimized code map for 0x490a8b4aa69 <SharedFunctionInfo>]

如何找出与0x490a8b4aa69对应的javascript代码?

完整输出可用here

1 个答案:

答案 0 :(得分:2)

该错误消息曾经在v8/src/objects.cc的第10200行附近,但已不复存在。它基本上意味着当前没有对特定迹线采用优化。可能是因为它未被使用,或者很少使用。它可能是Node.js库函数。提供的地址在内存中。您必须将调试器附加到v8并在该位置加载SharedFunctionInfo的符号。也可能是产生消息的行上的断点。

我不认为知道什么没有优化是有用的,因为有很多东西没有得到优化......只需从--trace_opt获取输出并假设其他一切都不是'吨。这只是一个暗示,检查是为优化的代码执行的,没有一个是时候了。也许尝试--trace_codegen并向后工作。

研究这看起来非常费时 Thorsten Lorenz那个人询问此事。