Skip to content

Instantly share code, notes, and snippets.

View MarioAriasC's full-sized avatar

Mario Arias MarioAriasC

  • Singapore
  • 12:51 (UTC +08:00)
View GitHub Profile
ruby plot.rb kt-vs-ts.json
┌ ┐
./benchmarks-bun.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 47.04533121558
bun run ../TSMonkey/benchmark.ts ┤■■■■■■■■■■■■■■■■■■■■■■■■■■ 14.464090869880001
└ ┘
hyperfine -w 3 './benchmarks-bun.sh eval-fast' 'bun run ../TSMonkey/benchmark.ts' --export-json kt-vs-ts.json
Benchmark 1: ./benchmarks-bun.sh eval-fast
Time (mean ± σ): 47.045 s ± 0.788 s [User: 32.528 s, System: 16.987 s]
Range (min … max): 45.921 s … 48.228 s 10 runs
Benchmark 2: bun run ../TSMonkey/benchmark.ts
Time (mean ± σ): 14.464 s ± 0.180 s [User: 8.788 s, System: 6.610 s]
Range (min … max): 14.229 s … 14.741 s 10 runs
Summary
ruby plot.rb js-vm-all.json
┌ ┐
./benchmarks-bun.sh vm-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 26.54168190048
./benchmarks-node.sh vm-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 29.858029703380005
└ ┘
ruby plot.rb js-eval-all.json
┌ ┐
./benchmarks-bun.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 46.647437907100006
./benchmarks-node.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 52.0971284792
└ ┘
Runtime Mem
GraalVM 55.43359375 MB
JVM 419.2890625 MB
Native 3.85546875 MB
ruby --yjit plot.rb vm-all.json
┌ ┐
./benchmarks-jvm.sh vm-fast ┤■■■■■■■■■■■■■■■■■ 4.05584675816
./benchmarks-graal.sh vm-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 10.54270851846
./benchmarks-native.sh vm-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 19.83852377616
└ ┘
ruby --yjit plot.rb eval-all.json
┌ ┐
./benchmarks-jvm.sh eval-fast ┤■■■■■■■■■■■■ 4.467866928019999
./benchmarks-graal.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■ 9.253937852019998
./benchmarks-native.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 32.51221281742
└ ┘
hyperfine -w 3 './benchmarks-jvm.sh vm-fast' './benchmarks-graal.sh vm-fast' './benchmarks-native.sh vm-fast' --export-json vm-all.json
Benchmark 1: ./benchmarks-jvm.sh vm-fast
Time (mean ± σ): 4.056 s ± 0.063 s [User: 3.679 s, System: 0.720 s]
Range (min … max): 3.966 s … 4.165 s 10 runs
Benchmark 2: ./benchmarks-graal.sh vm-fast
Time (mean ± σ): 10.543 s ± 0.154 s [User: 10.401 s, System: 0.134 s]
Range (min … max): 10.290 s … 10.699 s 10 runs
Benchmark 3: ./benchmarks-native.sh vm-fast
hyperfine -w 3 './benchmarks-jvm.sh eval-fast' './benchmarks-graal.sh eval-fast' './benchmarks-native.sh eval-fast' --export-json eval-all.json
Benchmark 1: ./benchmarks-jvm.sh eval-fast
Time (mean ± σ): 4.468 s ± 0.293 s [User: 4.237 s, System: 0.900 s]
Range (min … max): 4.206 s … 5.238 s 10 runs
Benchmark 2: ./benchmarks-graal.sh eval-fast
Time (mean ± σ): 9.254 s ± 0.185 s [User: 9.170 s, System: 0.080 s]
Range (min … max): 9.047 s … 9.545 s 10 runs
Benchmark 3: ./benchmarks-native.sh eval-fast
ruby --yjit plot.rb ruby-all.json
┌ ┐
./benchmark ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 154.47034838802
./benchmark-yjit-linux ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 72.21244491401998
./benchmark-313 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 179.56996211492
./benchmark-yjit-linux-313 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 102.72067648421998
└ ┘