Skip to content

Instantly share code, notes, and snippets.

View kt-vs-ts-2-plot
ruby plot.rb kt-vs-ts-2.json
┌ ┐
./benchmarks-bun.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 45.654893785700004
bun run ../TSMonkey/benchmark.ts ┤■■■■■■■■■■■■■■■■■■■■■■■■■ 14.2863492943
└ ┘
View kt-vs-ts-2
hyperfine -w 3 './benchmarks-bun.sh eval-fast' 'bun run ../TSMonkey/benchmark.ts' --export-json kt-vs-ts-2.json
Benchmark 1: ./benchmarks-bun.sh eval-fast
Time (mean ± σ): 45.655 s ± 0.852 s [User: 30.591 s, System: 17.617 s]
Range (min … max): 44.481 s … 47.048 s 10 runs
Benchmark 2: bun run ../TSMonkey/benchmark.ts
Time (mean ± σ): 14.286 s ± 0.178 s [User: 8.775 s, System: 6.347 s]
Range (min … max): 14.039 s … 14.591 s 10 runs
Summary
View eval-ts-js.js
function evaluateNode(node, env) {
if (node instanceof Identifier) {
const value = env.get(node.value);
if (value === null) {
const builtin = builtins.get(node.value);
if (builtin !== undefined) {
return builtin;
}
return new MError(`identifier not found: ${node.value}`);
}
View eval-kt-js.js
function eval_1($this, expression, env) {
var tmp0_subject = expression;
var tmp;
if (tmp0_subject instanceof Identifier) {
var value = env.te(expression.za_1);
var tmp_0;
if (value == null) {
var builtin = get_builtins().a2(expression.za_1);
tmp_0 = builtin == null ? new MError('identifier not found: ' + expression.za_1) : builtin;
} else {
View kt-vs-ts-plot
ruby plot.rb kt-vs-ts.json
┌ ┐
./benchmarks-bun.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 47.04533121558
bun run ../TSMonkey/benchmark.ts ┤■■■■■■■■■■■■■■■■■■■■■■■■■■ 14.464090869880001
└ ┘
View kt-vs-ts
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
View kotlin-js-vm-plot
ruby plot.rb js-vm-all.json
┌ ┐
./benchmarks-bun.sh vm-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 26.54168190048
./benchmarks-node.sh vm-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 29.858029703380005
└ ┘
View kotlin-js-eval-plot
ruby plot.rb js-eval-all.json
┌ ┐
./benchmarks-bun.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 46.647437907100006
./benchmarks-node.sh eval-fast ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 52.0971284792
└ ┘
View kotlin-mem.csv
Runtime Mem
GraalVM 55.43359375 MB
JVM 419.2890625 MB
Native 3.85546875 MB
View kotlin-vm-all-plot
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
└ ┘