Build v8 (creates the d8 executable):
git clone git://github.com/v8/v8.git v8-git cd v8-git/ make dependencies make native
If you don't have a copy of the lab repo download md2d.js from this gist:
curl https://raw.github.com/gist/2289269/md2d.js -o md2d.js
If you do have a local copy of the Lab repo then make a copy of the
md-engine/ folder generated by the lab repo and append
add-to-md2d.js to the end of
cp -R $PATH_TO_LAB/md-engine ../ curl https://raw.github.com/gist/2289269/add-to-md2d.js >> ../md-engine/md2d.js
md2d.js without profiling (use correct path to md2d.js):
$ out/native/d8 md2d.js initializing to temp 100 *** MD warmup: 1000 steps *** MD benchmark: 5 runs, 1000 steps *** MD run 1: 2028 *** MD run 2: 2009.9999999999998 *** MD run 3: 1993 *** MD run 4: 2072 *** MD run 5: 2015.0000000000002 *** MD ave: 2023.6
Running with just d8 I get 2024 average model-steps/s (Mac OS X 10.6.8 2.66 GHz Intel Core i7 with 8GB memory).
Benchmarking the same MD engine while running the Complex Atoms model generated by the tag v0.1.1 in Chrome 20.0.1090.0 I am normally seeing benchmark results for just the model of 550-600 model-steps/s.
However when Chrome is running slowly the rate drops to 120-150.
I do not see the slowdown running the latest Complex Atoms model generated by the master branch in Chrome 20.0.1092.0.
Testing on Windows 7 (on the same machine) I have recorded performance as high as 1724 model-steps/s.
Run d8 (v8) with various tracing flags enabled:
out/native/d8 --trace-opt --trace-inlining --trace-deopt --code-comments --trace-gc md2d.js
Here is a copy of recent profiling results.
For more info on interpreting the results see Florian Loitsch's series on profiling and optimizing code for V8.
You can also run
md2d.js in node with or without the profiling arguments:
$ node --trace-deopt --code-comments md2d.js [deoptimize context: 102010579] initializing to temp 100 *** MD warmup: 1000 steps **** DEOPT: require.define.makeIntegrator.integrate at bailout #307, address 0x0, frame size 1232 [deoptimizing: begin 0x1007baf21 require.define.makeIntegrator.integrate @307] translating require.define.makeIntegrator.integrate => node=1792, height=224 0x7fff5fbfdf60: [top + 272] <- 0x1260643b9 ; [esp + 944] 0x7fff5fbfdf58: [top + 264] <- 0x1002000b1 <undefined> ; literal ...
- Chromium Issue 121196: Huge performance regression/variation in Chrome after changing window size and reloading (using typed arrays and SVG)
- V8 Issue Unexpected performance varaiations on physics simulation: Unexpected performance varaiations on physics simulation
- v8-users: how to interpret the output when running with --trace-deopt on?