Может ли node.js (или какой-либо другой интерфейс v8 или оболочка вокруг v8) выводить сгенерированную сборку из JIT v8?
Я хотел бы посмотреть, как выглядит сгенерированная сборка для различных фрагментов.
Может ли node.js (или какой-либо другой интерфейс v8 или оболочка вокруг v8) выводить сгенерированную сборку из JIT v8?
Я хотел бы посмотреть, как выглядит сгенерированная сборка для различных фрагментов.
Вам необходимо убедиться, что node.js собран с включенным дизассемблером V8. В отладочных сборках он будет включен по умолчанию. Для выпускных сборок (в достаточно недавнем узле, использующем сборку GYP) вы можете включить его, выполнив:
GYP_DEFINES="v8_enable_disassembler=1 v8_object_print=1" ./configure
и восстановление узла.
Когда дизассемблер включен, вы можете использовать такие флаги, как --print-code
, --print-code-stubs
, --print-opt-code
и --code-comments
, чтобы проверить код, сгенерированный V8.
Если вы хотите исследовать IR, используемый оптимизирующим компилятором, используйте --trace-hydrogen
и посмотрите на hydrogen.cfg
(его можно просмотреть с помощью C1 Visualizer).
node --expose-debug-as=d -e "function f(){return 1;}; d.Debug.disassemble(f)"
- person slipheed   schedule 08.06.2012