-
-
Save fwsGonzo/1af5b2a9b4f38c1f3d3074d78acdf609 to your computer and use it in GitHub Desktop.
Interpreted libriscv vs. LuaJIT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| $ ./bench | |
| * All benchmark results are measured in 200x1200 samples | |
| benchmark overhead median 0ns lowest: 0ns highest: 0ns | |
| Self-test running ELF entry at 0x10C20 | |
| Calling into event loop...! | |
| event_loop: Checking for work | |
| event_loop: Going to sleep! | |
| add_work: Adding work | |
| Resuming event loop...! | |
| event_loop: Checking for work | |
| work: Doing some work! | |
| event_loop: Going to sleep! | |
| event_loop: Checking for work | |
| event_loop: Going to sleep! | |
| add_work: Adding work | |
| event_loop: Checking for work | |
| work: Doing some work! | |
| event_loop: Going to sleep! | |
| RISC-V self-test OK | |
| * Loading program of size 202739 from 0x7cea3c63cd80 to virtual 0x10000 -> 0x417f3 | |
| * Program segment readable: 1 writable: 0 executable: 1 | |
| * Loading program of size 2096 from 0x7cea3c66e574 to virtual 0x427f4 -> 0x43024 | |
| * Program segment readable: 1 writable: 1 executable: 0 | |
| * Using program-provided exit function at 0x119c8 | |
| * Entry is at 0x10c20 | |
| libriscv: mips instr 1600020000, time 1.159662, 1379.729211 mip/s | |
| libriscv: call overhead median 2ns lowest: 2ns highest: 2ns | |
| libriscv: call args=1 median 2ns lowest: 2ns highest: 4ns | |
| libriscv: call args=2 median 2ns lowest: 2ns highest: 4ns | |
| libriscv: call args=3 median 2ns lowest: 2ns highest: 3ns | |
| libriscv: call args=4 median 2ns lowest: 2ns highest: 2ns | |
| libriscv: call args=5 median 2ns lowest: 2ns highest: 2ns | |
| libriscv: call args=6 median 2ns lowest: 2ns highest: 4ns | |
| libriscv: call args=7 median 2ns lowest: 2ns highest: 3ns | |
| libriscv: call args=8 median 3ns lowest: 3ns highest: 3ns | |
| libriscv: preempt overhead median 10ns lowest: 10ns highest: 12ns | |
| libriscv: resume execution median 3ns lowest: 3ns highest: 3ns | |
| luajit: call overhead median 150ns lowest: 149ns highest: 161ns | |
| luajit: call args=1 median 161ns lowest: 159ns highest: 168ns | |
| luajit: call args=2 median 164ns lowest: 162ns highest: 174ns | |
| luajit: call args=3 median 166ns lowest: 165ns highest: 175ns | |
| luajit: call args=4 median 170ns lowest: 165ns highest: 181ns | |
| luajit: call args=5 median 173ns lowest: 171ns highest: 180ns | |
| luajit: call args=6 median 178ns lowest: 176ns highest: 185ns | |
| luajit: call args=7 median 180ns lowest: 178ns highest: 191ns | |
| luajit: call args=8 median 184ns lowest: 181ns highest: 191ns | |
| libriscv: syscall args=0 median 3ns lowest: 3ns highest: 3ns | |
| libriscv: syscall args=1 median 3ns lowest: 3ns highest: 3ns | |
| libriscv: syscall args=2 median 3ns lowest: 3ns highest: 6ns | |
| libriscv: syscall args=3 median 3ns lowest: 3ns highest: 6ns | |
| libriscv: syscall args=4 median 3ns lowest: 3ns highest: 5ns | |
| libriscv: syscall args=5 median 3ns lowest: 3ns highest: 11ns | |
| libriscv: syscall args=6 median 3ns lowest: 3ns highest: 3ns | |
| libriscv: syscall args=7 median 3ns lowest: 3ns highest: 7ns | |
| libriscv: syscall string median 6ns lowest: 6ns highest: 10ns | |
| luajit: syscall args=0 median 168ns lowest: 164ns highest: 187ns | |
| luajit: syscall args=1 median 183ns lowest: 180ns highest: 192ns | |
| luajit: syscall args=2 median 195ns lowest: 192ns highest: 205ns | |
| luajit: syscall args=3 median 207ns lowest: 204ns highest: 217ns | |
| luajit: syscall args=4 median 221ns lowest: 218ns highest: 234ns | |
| luajit: syscall args=5 median 234ns lowest: 229ns highest: 244ns | |
| luajit: syscall args=6 median 247ns lowest: 243ns highest: 254ns | |
| luajit: syscall args=7 median 260ns lowest: 256ns highest: 271ns | |
| luajit: syscall string median 180ns lowest: 177ns highest: 188ns | |
| After this point, call overhead is subtracted from every benchmark result for both libriscv and Lua | |
| libriscv: array append median 3ns lowest: 3ns highest: 5ns | |
| libriscv: vector append median 7ns lowest: 7ns highest: 11ns | |
| luajit: table append median 22ns lowest: 18ns highest: 31ns | |
| libriscv: 8x arguments median 28ns lowest: 27ns highest: 48ns | |
| libriscv: 8x stored args median 33ns lowest: 30ns highest: 37ns | |
| libriscv: 8x prepared args median 37ns lowest: 34ns highest: 43ns | |
| luajit: 8x arguments median 374ns lowest: 366ns highest: 406ns | |
| libriscv: integer math median 3ns lowest: 3ns highest: 6ns | |
| libriscv: fp math median 8ns lowest: 8ns highest: 12ns | |
| libriscv: exp math median 13ns lowest: 13ns highest: 25ns | |
| libriscv: fib(40) median 156ns lowest: 148ns highest: 194ns | |
| libriscv: taylor(1K) median 5889ns lowest: 5051ns highest: 6106ns | |
| luajit: integer math median 49ns lowest: 46ns highest: 60ns | |
| luajit: fp math median 59ns lowest: 56ns highest: 69ns | |
| luajit: exp math median 67ns lowest: 64ns highest: 73ns | |
| luajit: fib(40) median 60ns lowest: 57ns highest: 68ns | |
| luajit: taylor(1K) median 858ns lowest: 844ns highest: 926ns | |
| libriscv: complex syscall median 40ns lowest: 36ns highest: 46ns | |
| luajit: complex syscall median 838ns lowest: 812ns highest: 853ns | |
| libriscv: micro threads median 86ns lowest: 84ns highest: 93ns | |
| luajit: coroutines median 167ns lowest: 159ns highest: 185ns | |
| libriscv: micro thread args median 132ns lowest: 128ns highest: 139ns | |
| libriscv: full thread args median 141ns lowest: 135ns highest: 149ns | |
| luajit: coroutine args median 214ns lowest: 206ns highest: 225ns | |
| luajit: coroutine args median 256ns lowest: 248ns highest: 271ns | |
| libriscv: naive memcpy median 1052ns lowest: 944ns highest: 1186ns | |
| libriscv: syscall memcpy median 19ns lowest: 18ns highest: 25ns | |
| luajit: memcpy median 96ns lowest: 91ns highest: 109ns | |
| libriscv: syscall memset median 11ns lowest: 11ns highest: 21ns | |
| libriscv: naive memset median 169ns lowest: 163ns highest: 208ns | |
| luajit: memset median 69ns lowest: 66ns highest: 80ns | |
| libriscv: sieve(10M) median 133ms lowest: 133ms highest: 133ms | |
| luajit: sieve(10M) median 131ms lowest: 131ms highest: 131ms |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On my ThinkPad Z13 with AMD Ryzen 7 6860Z: