find未被V8优化的相应JS源代码

我尝试优化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>] 

我怎样才能找出哪个JavaScript代码对应于0x490a8b4aa69

完整的输出在这里可用。

该错误消息曾经在v8/src/objects.cc第10200行左右,但没有更多。 这基本上意味着目前没有针对特定跟踪进行优化。 可能是因为它没有被使用,或者很less使用。 它可能是一个Node.js库函数。 提供的地址在内存中。 你必须将一个debugging器附加到v8,并在该位置加载SharedFunctionInfo的符号。 也可能产生信息的线上的断点。

我不认为这是有用的知道什么是不优化的,因为有很多事情没有得到优化…只要从--trace_opt的输出,并假设其他一切都不是。 这只是一个暗示,优化代码进行检查,没有时间。 也许尝试--trace_codegen和倒退。

这看起来是一个非常耗时的研究。
Thorsten Lorenz会是这个问题的人