|Scale||What it measures|
|binarytrees||seconds (lower numbers are better)||GC performance|
|scimark||MFLOPS (higher numbers are better)||numeric computation performance|
|warm startup||seconds (lower numbers are better)||how long it takes the VM to be ready to run, after it was previously run|
The individual benchmark results are reported in their native units, and have short descriptions in the table. The final combined score is more abstract, it is basically a normalized mean of the individual numbers, where higher numbers are better. The final score is intended to give a quick summarizing number for comparison purposes.
As one datapoint, on a 64-bit Linux machine I get 732 for Firefox Nightly and 454 for Chrome Dev (as of Jan 6, 2014).
Comparing individual results to a native build of Lua, in Firefox the Lua VM runs at 64% of the speed of the native build.
If you want to compare the results to a native build on your machine, you can do so as follows:
and run the same benchmarks (binarytrees, scimark). To run them,
lua scimark.lua and
lua binarytrees.lua 14.72 (don't forget the second argument in binarytrees).
This project ports Lua, not LuaJIT. LuaJIT is more challenging to port, because in addition to being a JIT, its interpreter is in optimized handwritten assembly. This is great for speed but makes things trickier when cross-compiling to a new platform.
LuaJIT is significantly faster than Lua, so it is even more significantly faster than this port to the web. However, it's important to remember that even without LuaJIT, Lua is relatively fast compared to most other dynamic languages, like Python and Ruby, that are very useful in many cases even without blazing speed.
emmake make generic
lua/ in this repo, then run
build.py in the top dir.
I (kripken) am mainly interested in the performance aspect of this project, hopefully others will contribute to the scripting aspect.