maierfelix/glmw

unreliable benchmarks, please use benchmark.js

Opened this issue · 1 comments

Quick discussion of the issues here:

https://news.ycombinator.com/item?id=16789716

Just wanted to post the same thing. 10000 tests is not nearly enough for a fair comparison, because V8 does not optimize JS code until it is executed enough times - and optimization itself takes some time (though it's probably not benchmarked).

This jsperf reports 24 million mat4.multiply per second in WASM and 19 million in JS on my machine. I get the same results if I make a test page that runs a million iterations in setInterval.

The same perf also shows that vec3.dot in WASM is over 5 times slower than the JS version due to js->wasm overhead.

The bytecode is generated with this webassembly studio project.

My conclusion is that while WASM is slightly beneficial for larger functions, for small functions it makes no sense at all.