Skip to content

doir-lang/MizuBenchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Results

Desktop Language Comparison

In order to run this benchmark NodeJS, Python, Numba, DotNet Lua, LuaJIT, and WASM3 need to be available in the path.

Additionally the bubble sort test requires 30kb of virtual stack space, thus line 71 in MizuVM/mizu/opcode.hpp must be tweaked to multiply by 30 instead of 5.

Linux Fibonacchi(40)

ns/op op/s err% total benchmark
1,934,220,740.00 0.52 0.0% 21.30 GCC 13.3.0 Mizu(file) fib(40)
1,973,094,603.00 0.51 0.8% 21.67 GCC 13.3.0 Mizu fib(40)
1,934,022,423.00 0.52 0.0% 21.33 GCC 13.3.0 Mizu(file + loading) fib(40)
1,984,024,460.00 0.50 0.1% 21.98 Clang 18.1.3 Mizu(file) fib(40)
1,936,542,839.00 0.52 0.0% 21.32 Clang 18.1.3 Mizu fib(40)
1,937,856,961.00 0.52 0.2% 21.50 Clang 18.1.3 Mizu(file + loading) fib(40)
659,612.23 1,516.04 4.6% 81.94 APE(native) fib(40)
394,396,350.00 2.54 0.3% 4.33 Node v18.19.1 fib(40)
245,554,699.39 4.07 0.1% 292.95 C# dotnet8.0.112 fib(40)
565,252,299.00 1.77 1.4% 6.22 LuaJIT 2.1.1736781742 fib(40)
3,311,031,864.00 0.30 0.7% 37.63 Lua 5.4.6 fib(40)
3,414,371,980.00 0.29 0.1% 37.62 Python 3.12.3 fib(40)
3,599,891,078.00 0.28 0.3% 39.66 Numba 0.61.0 fib(40)
9,744,831,833.00 0.10 0.2% 107.23 WASM3(c) v0.5.0 fib(40)

Linux Bubble-Sort(1100)

ns/op op/s err% total benchmark
8,647,514.46 115.64 0.1% 10.32 GCC 13.3.0 Mizu(file + loading) bubble(1100)
8,652,469.56 115.57 0.0% 10.34 GCC 13.3.0 Mizu(file + loading + data loading) bubble(1100)
8,691,832.29 115.05 0.1% 10.39 Clang 18.1.3 Mizu(file + loading) bubble(1100)
8,687,456.57 115.11 0.1% 10.37 Clang 18.1.3 Mizu(file + loading + data loading) bubble(1100)
2,045,363.01 488.91 3.7% 240.43 APE(native) bubble(1100)
51,025,729.66 19.60 0.6% 60.97 Node v18.19.1 bubble(1100)
23,865,895.32 41.90 2.6% 28.50 C# dotnet8.0.112 bubble(1100)
16,243,793.76 61.56 3.7% 19.36 LuaJIT 2.1.1736781742 bubble(1100)
21,355,307.02 46.83 1.6% 25.18 Lua 5.4.6 bubble(1100)
78,802,228.60 12.69 0.3% 94.07 Python 3.12.3 bubble(1100)
255,981,218.39 3.91 0.2% 305.49 Numba 0.61.0 bubble(1100)
21,067,719.54 47.47 2.0% 25.02 WASM3(c) v0.5.0 bubble(1100)

Windows Fibonacchi(40)

ns/op op/s err% total benchmark
1,878,512,500.00 0.53 0.1% 20.66 MSYS UCRT64 GCC 14.2.0 Mizu(file) fib(40)
1,879,747,000.00 0.53 0.1% 20.67 MSYS UCRT64 GCC 14.2.0 Mizu fib(40)
1,881,879,700.00 0.53 0.2% 20.75 MSYS UCRT64 GCC 14.2.0 Mizu(file + loading) fib(40)
107,768,900.00 9.28 3.2% 1.19 EXE(native) fib(40)
367,994,100.00 2.72 0.2% 4.07 Node v22.14.0 fib(40)
271,162,900.00 3.69 1.9% 2.98 LuaJIT 2.1.ROLLING fib(40)
2,872,786,800.00 0.35 1.1% 32.49 Lua 5.4.2 fib(40)
3,345,244,700.00 0.30 0.2% 37.08 Python 3.13.2 fib(40)
5,975,159,500.00 0.17 0.1% 65.79 WASM3(c) v0.5.1 fib(40)

Windows Bubble-Sort(1100)

ns/op op/s err% total benchmark
8,519,995.41 117.37 0.2% 10.16 MSYS UCRT64 GCC 14.2.0 Mizu(file + loading) bubble(1100)
8,558,027.52 116.85 0.2% 10.23 MSYS UCRT64 GCC 14.2.0 Mizu(file + loading + data loading) bubble(1100)
41,054,600.00 24.36 5.0% 0.47 EXE(native) bubble(1100)
37,495,300.00 26.67 2.2% 0.42 Node v22.14.0 bubble(1100)
13,400,800.00 74.62 4.5% 0.16 LuaJIT 2.1.ROLLING bubble(1100)
10,486,200.00 95.36 6.1% 0.14 Lua 5.4.2 bubble(1100)
26,733,200.00 37.41 13.1% 0.31 Python 3.13.2 bubble(1100)
55,586,500.00 17.99 4.6% 0.64 WASM3(c) v0.5.1 bubble(1100)

M3 Mac Fibonacchi(40)

ns/op op/s err% total benchmark
2,951,522,916.00 0.34 0.1% 32.56 Apple Clang 15.0.0 Mizu(file) fib(40)
2,951,555,708.00 0.34 0.0% 32.47 Apple Clang 15.0.0 Mizu fib(40)
2,964,114,500.00 0.34 0.2% 32.81 Apple Clang 15.0.0 Mizu(file + loading) fib(40)
170,608,583.00 5.86 0.2% 2.05 EXE(native) fib(40)
419,975,458.00 2.38 0.2% 4.62 Node v23.7.0 fib(40)
443,358,458.00 2.26 1.9% 4.89 LuaJIT 2.1.1736781742 fib(40)
3,608,061,375.00 0.28 0.3% 39.12 Lua 5.4.7 fib(40)
6,642,663,500.00 0.15 0.2% 73.02 Python 3.13.2 fib(40)
2,078,485,583.00 0.48 0.1% 22.87 Wasm3(c) v0.5.0 fib(40)

M3 Mac Bubble-Sort(1100)

ns/op op/s err% total benchmark
12,429,707.56 80.45 0.5% 14.83 Apple Clang 15.0.0 Mizu(file + loading) bubble(1100)
12,311,610.76 81.22 0.2% 14.69 Apple Clang 15.0.0 Mizu(file + loading + data loading) bubble(1100)
1,839,507.68 543.62 0.0% 219.78 EXE(native) bubble(1100)
25,401,260.77 39.37 0.3% 30.34 Node v23.7.0 bubble(1100)
4,517,551.73 221.36 0.2% 5.40 LuaJIT 2.1.173678174 bubble(1100)
22,208,727.94 45.03 0.1% 26.55 Lua 5.4.7 bubble(1100)
122,006,038.44 8.20 0.4% 145.32 Python 3.13.2 bubble(1100)
26,055,983.17 38.38 0.0% 31.09 Wasm3(c) v0.5.0 bubble(1100)

WASM Benchmarks

PC (linux)

ns/op op/s err% total benchmark
20,178,235,000.00 0.05 0.1% 221.57 Mizu(Emscripten/Linux Chrome) fib(40)
45,185,000,000.00 0.02 0.7% 496.62 Mizu(Emscripten/Linux Firefox) fib(40)
13,429,288,639.00 0.07 0.1% 147.80 Mizu(WASI/Linux NodeJS) fib(40)
81,240,595.24 12.31 1.2% 105.62 Mizu(Emscripten/Linux Chrome) bubble(1100)
207,782,321.43 4.81 1.2% 271.04 Mizu(Emscripten/Linux Firefox) bubble(1100)
57,434,897.81 17.41 0.0% 74.88 Mizu(WASI/Linux NodeJS) bubble(1100)

Running The Benchmark

emcmake cmake .. -DBENCHMARK_MODE=web -DMIZU_NO_EXCEPTIONS=on -DCMAKE_BUILD_TYPE=Release emrun web.html

cmake .. -DCMAKE_TOOLCHAIN_FILE=/home/joshuadahl/Dev/wasi-sdk/build/install/share/cmake/wasi-sdk.cmake -DBENCHMARK_MODE=wasi -DMIZU_ENABLE_LIB_FFI=off -DMIZU_NO_EXCEPTIONS=on -DCMAKE_BUILD_TYPE=Release node --experimental-wasm-return_call ../wasi_exec.js wasi

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published