July 2017
Intermediate to advanced
656 pages
16h 1m
English
We can tap into the V8 decision process regarding when to optimize a function using the --trace-opt and trace-deopt flags.
Imagine we had an application with an entry point of app.js, we could watch optimization events with the following:
$ node --trace-opt --trace-deopt app.js
This would yield output resembling the following:
[marking 0x21e29c142521 <JS Function varOf (SharedFunctionInfo 0x1031e5bfa4b9)> for recompilation, reason: hot and stable, ICs with typeinfo: 3/3 (100%), generic ICs: 0/3 (0%)] [compiling method 0x21e29c142521 <JS Function varOf (SharedFunctionInfo 0x1031e5bfa4b9)> using Crankshaft] [optimizing 0x21e29c142521 <JS Function varOf (SharedFunctionInfo 0x1031e5bfa4b9)> - took ...