Skip to content

Instantly share code, notes, and snippets.

@fwsGonzo
Created January 6, 2024 22:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fwsGonzo/5ac8f4d8ca84e97b0c527aec76a86fe9 to your computer and use it in GitHub Desktop.
Save fwsGonzo/5ac8f4d8ca84e97b0c527aec76a86fe9 to your computer and use it in GitHub Desktop.
Interpreted libriscv vs. Luau (both actual sandboxes)
$ ./bench
* All benchmark results are measured in 200x1200 samples
benchmark overhead median 0ns lowest: 0ns highest: 0ns
Self-test running ELF entry at 0x101BC
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
libriscv: mips instr 1600025000, time 1.507793, 1061.170229 mip/s
libriscv: call overhead median 3ns lowest: 3ns highest: 3ns
libriscv: preempt overhead median 12ns lowest: 11ns highest: 13ns
libriscv: fork median 211ns lowest: 204ns highest: 234ns
libriscv: resume execution median 3ns lowest: 3ns highest: 3ns
luau: call overhead median 83ns lowest: 82ns highest: 89ns
libriscv: array append median 3ns lowest: 3ns highest: 9ns
libriscv: vector append median 10ns lowest: 9ns highest: 13ns
luau: table append median 24ns lowest: 23ns highest: 38ns
libriscv: 8x arguments median 45ns lowest: 44ns highest: 55ns
libriscv: 8x stored args median 35ns lowest: 33ns highest: 38ns
libriscv: 8x prepared args median 43ns lowest: 42ns highest: 50ns
luau: 8x arguments median 215ns lowest: 209ns highest: 234ns
libriscv: integer math median 4ns lowest: 3ns highest: 4ns
libriscv: fp math median 8ns lowest: 8ns highest: 15ns
libriscv: exp math median 14ns lowest: 12ns highest: 20ns
libriscv: fib(40) median 171ns lowest: 149ns highest: 206ns
libriscv: taylor(1K) median 6487ns lowest: 6409ns highest: 6958ns
luau: integer math median 38ns lowest: 35ns highest: 44ns
luau: fp math median 53ns lowest: 46ns highest: 67ns
luau: exp math median 53ns lowest: 50ns highest: 68ns
luau: fib(40) median 473ns lowest: 455ns highest: 552ns
luau: taylor(1K) median 10487ns lowest: 9013ns highest: 11330ns
libriscv: syscall overhead median 2ns lowest: 2ns highest: 2ns
libriscv: syscall string median 7ns lowest: 6ns highest: 11ns
luau: syscall overhead median 19ns lowest: 17ns highest: 22ns
luau: syscall string median 36ns lowest: 34ns highest: 53ns
libriscv: complex syscall median 60ns lowest: 59ns highest: 68ns
luau: complex syscall median 606ns lowest: 594ns highest: 624ns
libriscv: micro threads median 131ns lowest: 128ns highest: 141ns
luau: coroutines median 182ns lowest: 178ns highest: 200ns
libriscv: micro thread args median 185ns lowest: 182ns highest: 199ns
libriscv: full thread args median 192ns lowest: 189ns highest: 214ns
luau: coroutine args median 236ns lowest: 232ns highest: 253ns
luau: coroutine args median 233ns lowest: 228ns highest: 253ns
libriscv: naive memcpy median 322ns lowest: 310ns highest: 425ns
libriscv: syscall memcpy median 17ns lowest: 16ns highest: 24ns
luau: memcpy median 2393ns lowest: 2371ns highest: 2441ns
libriscv: syscall memset median 10ns lowest: 10ns highest: 19ns
libriscv: naive memset median 187ns lowest: 179ns highest: 226ns
luau: memset median 1607ns lowest: 1595ns highest: 1690ns
libriscv: sieve(10M) median 178ms lowest: 178ms highest: 178ms
luau: sieve(10M) median 400ms lowest: 400ms highest: 400ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment