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.js
d8 --trace-opt --trace-deopt test.js
time d8 --prof test.js
d8 --trace-gc test.js
d8 --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
,HaveSameMap
hasFastProperties(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.log
tools/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 [email protected]: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