Links
- v8/V8Profiler: How to profile V8 using the built-in profiler
- Creating V8 profiling timeline plots
- Installing V8 on a Mac
d8 --trace-opt-verbose file.jsd8 --trace-opt --trace-deopt test.jstime d8 --prof test.jsd8 --trace-gc test.jsd8 --allow-natives-syntax file.js%CollectGarbage(null);%HaveSameMap(new Foo(1), new Foo(2))(test if the hidden classes are the same)
- Nathanaela/v8-Natives
- v8-native-calls.js
CollectGarbage,HaveSameMaphasFastProperties(obj),hasFastSmiElements(obj),hasFastObjectElements(obj),hasFastDoubleElements(obj),hasDictionaryElements(obj),hasFastHoleyElements(obj),haveSameMap(obj1, obj2),isObserved(obj),isValidSmi(obj),isSmi(obj),isInPrototypeChain(item, obj),hasFastSmiOrObjectElements(obj),hasSloppyArgumentsElements(obj)
- IR Hydra²: mraleph/irhydra
- June 13th, 2013: Use forensics and detective work to solve JavaScript performance mysteries - HTML5 Rocks
- Nice article on the use of d8/v8/node flags and performance debugging.
-no-sandbox --js-flags="--prof --noprof-lazy --log-timer-events"tools/linux-tick-processor /path/to/v8.logtools/plot-timer-event /path/to/v8.log--js-flags="--trace-deopt --trace-opt-verbose"
- thlorenz/v8-perf/compiler.md
- thlorenz/v8-perf/performance-profiling.md
Snippets
Build V8 debug
Ref: https://gist.github.com/kevincennis/0cd2138c78a07412ef21
git clone git@github.com:v8/v8.git cd v8 make builddeps && make x64.debug alias d8=/path/to/v8/repo/out/x64.debug/d8 alias tick-processor=/path/to/v8/repo/tools/mac-tick-processor