Я пытаюсь оптимизировать производительность приложения node.js и поэтому анализирую поведение JIT-компилятора V8.
При запуске приложения через node --trace_deopt --trace_opt --code_comments --print_optcode ... выходные данные содержат много повторяющихся строк, таких как следующие:
[didn't find optimized code in optimized code map for 0x490a8b4aa69 <SharedFunctionInfo>]
Как узнать, какой код JavaScript соответствует 0x490a8b4aa69?
Полный вывод доступен здесь.
Ответ 1 · рейтинг 2 · TylerY86
Это сообщение об ошибке раньше было примерно в строке 10200 v8/src/objects.cc, но его больше нет. В основном это означает, что в настоящее время оптимизация для конкретной трассы не применялась. Возможно, потому, что он не использовался или использовался достаточно редко. Вероятно, это была библиотечная функция Node.js. Предоставленный адрес находится в памяти. Вам нужно было бы подключить отладчик к v8 и загрузить символ для SharedFunctionInfo в этом месте. Возможно, точка останова и на строке, которая выдает сообщение.
Я не думаю, что полезно знать, что не было оптимизировано, так как есть много вещей, которые не оптимизируются... просто возьмите вывод из --trace_opt и предположите, что все остальное не оптимизировано. Это был как бы намек на то, что была проведена проверка оптимизированного кода, а времени на это не было. Может быть, попробовать --trace_codegen и работать в обратном порядке.
На это уходит очень много времени.
Торстен Лоренц был бы парнем, чтобы спросить об этом.