我尝试优化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。
答案 0 :(得分:2)
该错误消息曾经在v8/src/objects.cc
的第10200行附近,但已不复存在。它基本上意味着当前没有对特定迹线采用优化。可能是因为它未被使用,或者很少使用。它可能是Node.js库函数。提供的地址在内存中。您必须将调试器附加到v8并在该位置加载SharedFunctionInfo
的符号。也可能是产生消息的行上的断点。
我不认为知道什么没有优化是有用的,因为有很多东西没有得到优化......只需从--trace_opt
获取输出并假设其他一切都不是'吨。这只是一个暗示,检查是为优化的代码执行的,没有一个是时候了。也许尝试--trace_codegen
并向后工作。
研究这看起来非常费时 Thorsten Lorenz会那个人询问此事。