OSH Runtime Performance

Source code: benchmarks/osh-runtime.sh

Elapsed Time by Shell (milliseconds)

Some benchmarks call many external tools, while some exercise the shell interpreter itself.

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 16 7 468 20 28.54 1.21
bin-true no-host 381 366 1,688 489 4.43 1.29
configure.cpython no-host 10,457 10,144 22,459 10,212 2.15 0.98
configure.ocaml no-host 3,280 2,829 3,782 2,678 1.15 0.82
configure.tcc no-host 40 29 194 36 4.79 0.88
configure.util-linux no-host 9,140 9,014 22,488 9,733 2.46 1.06
configure.yash no-host 1,583 1,488 1,700 1,291 1.07 0.82
hello-world no-host 1 1 47 2 43.90 2.23

Minor Page Faults

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 2,540 1,103 22,655 3,146 8.92 1.24
bin-true no-host 105,336 66,408 736,161 136,229 6.99 1.29
configure.cpython no-host 2,216,276 2,246,237 6,075,451 2,274,601 2.74 1.03
configure.ocaml no-host 410,703 391,606 633,565 415,603 1.54 1.01
configure.tcc no-host 6,558 5,496 22,981 7,018 3.50 1.07
configure.util-linux no-host 2,106,422 2,268,650 5,218,809 2,051,941 2.48 0.97
configure.yash no-host 255,581 245,538 382,414 259,308 1.50 1.01
hello-world no-host 153 81 3,603 342 23.55 2.24

Memory Usage (Max Resident Set Size in MB)

Memory usage is measured in MB (powers of 10), not MiB (powers of 2).

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 4.5 3.5 21.7 9.1 4.81 2.01
bin-true no-host 3.0 1.7 17.4 8.1 5.79 2.68
configure.cpython no-host 27.5 27.5 27.6 27.5 1.00 1.00
configure.ocaml no-host 20.7 20.7 20.6 20.8 1.00 1.00
configure.tcc no-host 19.6 19.5 19.5 19.5 1.00 1.00
configure.util-linux no-host 30.4 30.3 30.4 30.3 1.00 1.00
configure.yash no-host 24.5 24.5 24.6 24.5 1.00 1.00
hello-world no-host 3.1 1.5 17.2 6.3 5.60 2.04

GC Stats

workload host name elapsed ms max gc millis total gc millis allocated MB max rss MB num allocated num live max survived num in heap num in pool 1 num in pool 2 num gc points num gc done gc threshold num growths
hello-world no-host 2 0 0 0.2 6.3 3,666 3,666 0 673 1,821 1,172 2 0 50,000 0
bin-true no-host 489 1 2 2.7 8.1 165,628 23,878 2,801 12,721 88,290 64,617 5,012 3 50,000 0
abuild-print-help no-host 20 1 2 2.9 9.1 117,505 67,565 42,990 4,848 55,552 57,105 477 3 85,980 1
configure.cpython no-host 10,212 1 59 16.1 27.5 1,817,201 26,784 28,982 103,213 953,852 760,136 37,405 63 50,000 0
configure.util-linux no-host 9,733 3 58 22.6 30.3 2,764,617 27,105 67,639 130,391 1,375,524 1,258,702 44,791 42 135,278 1
configure.ocaml no-host 2,678 0 1 2.7 20.8 152,172 11,269 5,200 8,750 73,943 69,479 2,375 3 50,000 0
configure.tcc no-host 36 0 0 1.3 19.5 30,775 30,775 0 1,623 14,989 14,163 329 0 50,000 0
configure.yash no-host 1,291 1 2 2.6 24.5 142,131 9,792 6,577 7,667 72,905 61,559 2,608 3 50,000 0

rusage Details

task id host name workload elapsed ms user ms sys ms max rss MB shell label
2 no-host abuild-print-help 16 12 5 4.5 bash
10 no-host abuild-print-help 7 7 1 3.5 dash
18 no-host abuild-print-help 468 435 36 21.7 osh-cpython
26 no-host abuild-print-help 20 14 6 9.1 osh-native
1 no-host bin-true 381 281 114 3.0 bash
9 no-host bin-true 366 277 90 1.7 dash
17 no-host bin-true 1,688 1,281 596 17.4 osh-cpython
25 no-host bin-true 489 335 160 8.1 osh-native
3 no-host configure.cpython 10,457 7,551 3,137 27.5 bash
11 no-host configure.cpython 10,144 7,317 3,021 27.5 dash
19 no-host configure.cpython 22,459 16,568 7,199 27.6 osh-cpython
27 no-host configure.cpython 10,212 7,402 2,954 27.5 osh-native
5 no-host configure.ocaml 3,280 1,639 662 20.7 bash
13 no-host configure.ocaml 2,829 1,327 509 20.7 dash
21 no-host configure.ocaml 3,782 2,031 881 20.6 osh-cpython
29 no-host configure.ocaml 2,678 1,189 514 20.8 osh-native
6 no-host configure.tcc 40 27 14 19.6 bash
14 no-host configure.tcc 29 24 6 19.5 dash
22 no-host configure.tcc 194 167 29 19.5 osh-cpython
30 no-host configure.tcc 36 26 10 19.5 osh-native
4 no-host configure.util-linux 9,140 6,827 2,567 30.4 bash
12 no-host configure.util-linux 9,014 6,853 2,411 30.3 dash
20 no-host configure.util-linux 22,488 17,684 5,465 30.4 osh-cpython
28 no-host configure.util-linux 9,733 7,063 2,759 30.3 osh-native
7 no-host configure.yash 1,583 1,116 472 24.5 bash
15 no-host configure.yash 1,488 1,006 482 24.5 dash
23 no-host configure.yash 1,700 1,330 397 24.6 osh-cpython
31 no-host configure.yash 1,291 897 396 24.5 osh-native
0 no-host hello-world 1 1 0 3.1 bash
8 no-host hello-world 1 0 1 1.5 dash
16 no-host hello-world 47 39 8 17.2 osh-cpython
24 no-host hello-world 2 2 0 6.3 osh-native

More Details

task id host name workload minor faults major faults swaps in block out block signals voluntary ctx involuntary ctx shell label
2 no-host abuild-print-help 2,540 0 0 0 16 0 41 2 bash
10 no-host abuild-print-help 1,103 0 0 0 8 0 39 1 dash
18 no-host abuild-print-help 22,655 0 0 0 8 0 45 11 osh-cpython
26 no-host abuild-print-help 3,146 0 0 0 16 0 39 1 osh-native
1 no-host bin-true 105,336 0 0 0 8 0 2,002 41 bash
9 no-host bin-true 66,408 0 0 0 8 0 2,000 33 dash
17 no-host bin-true 736,161 0 0 0 8 0 2,006 134 osh-cpython
25 no-host bin-true 136,229 0 0 0 16 0 2,001 45 osh-native
3 no-host configure.cpython 2,216,276 0 0 0 32,928 0 15,182 2,057 bash
11 no-host configure.cpython 2,246,237 0 0 0 32,992 0 14,647 1,376 dash
19 no-host configure.cpython 6,075,451 0 0 0 27,512 0 16,203 5,045 osh-cpython
27 no-host configure.cpython 2,274,601 0 0 0 27,520 0 13,301 1,122 osh-native
5 no-host configure.ocaml 410,703 0 0 0 5,120 0 1,936 246 bash
13 no-host configure.ocaml 391,606 1 0 0 5,112 0 1,932 221 dash
21 no-host configure.ocaml 633,565 0 0 0 5,112 0 1,853 228 osh-cpython
29 no-host configure.ocaml 415,603 0 0 0 5,120 0 1,913 248 osh-native
6 no-host configure.tcc 6,558 0 0 0 104 0 49 3 bash
14 no-host configure.tcc 5,496 0 0 0 96 0 47 1 dash
22 no-host configure.tcc 22,981 0 0 0 96 0 53 11 osh-cpython
30 no-host configure.tcc 7,018 0 0 0 104 0 46 5 osh-native
4 no-host configure.util-linux 2,106,422 0 0 0 42,400 0 22,511 5,814 bash
12 no-host configure.util-linux 2,268,650 2 0 0 42,584 0 19,740 3,641 dash
20 no-host configure.util-linux 5,218,809 7 0 0 39,112 0 17,078 1,666 osh-cpython
28 no-host configure.util-linux 2,051,941 0 0 0 39,120 0 16,857 1,041 osh-native
7 no-host configure.yash 255,581 0 0 0 4,120 0 864 67 bash
15 no-host configure.yash 245,538 0 0 0 3,720 0 866 91 dash
23 no-host configure.yash 382,414 0 0 0 3,728 0 853 95 osh-cpython
31 no-host configure.yash 259,308 0 0 0 3,736 0 850 73 osh-native
0 no-host hello-world 153 0 0 0 8 0 1 0 bash
8 no-host hello-world 81 0 0 0 8 0 1 0 dash
16 no-host hello-world 3,603 0 0 0 8 0 7 5 osh-cpython
24 no-host hello-world 342 0 0 0 16 0 1 0 osh-native

Shell and Host

shell label shell id
bash bash-f69c7cd1
dash dash-308ec8e6
osh-cpython osh-a62f9da7
osh-native osh-53883dde
host label host id
no-host no-host-bcfc81f0

raw files