Friday, October 2, 2015

Richards Benchmark


javascript backend: 0.012 seconds

with manual pre-jitting

javascript backend + JIT Natives: 0.0106 seconds

The Chrome V8 JIT is already optimized for the Richards benchmark, so its harder to make it run any faster. Using a V8 native JIT call to force a method to be optimized before the benchmark timer, it is possible to get a tiny 1/50th of a second more speed. It would be interesting if V8 exposed other native calls that could improve performance. This is enabled with the command line option `--v8-natives`, and the syntax `v8->(F(args))` where `F(args)` is a function or method called with dummy arguments that will warm up the function so V8 can infer its static types.


Wednesday, September 23, 2015

Benchmarks updated

fannkuch old version vs fast setslice

old profile
  • __jsdict_pop replaced by direct call to __array_insert
  • __array_getslice replaced by __array_getslice_lowerstep: 200ms faster
  • __array_setslice 90ms faster