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 18 6 343 13 18.60 0.70
configure.cpython no-host 11,392 9,325 16,734 9,219 1.47 0.81
configure.ocaml no-host 2,736 2,706 3,356 2,634 1.23 0.96
configure.tcc no-host 30 25 193 26 6.48 0.88
configure.util-linux no-host 8,444 9,053 19,747 7,952 2.34 0.94
configure.yash no-host 1,126 1,051 1,632 1,036 1.45 0.92
hello-world no-host 1 0 31 2 24.97 1.28

Minor Page Faults

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 2,581 1,111 22,654 3,147 8.78 1.22
configure.cpython no-host 2,217,807 2,238,674 6,066,731 2,282,864 2.74 1.03
configure.ocaml no-host 410,421 391,971 633,640 415,813 1.54 1.01
configure.tcc no-host 6,535 5,495 22,974 7,021 3.52 1.07
configure.util-linux no-host 2,100,912 2,271,559 5,246,972 2,055,782 2.50 0.98
configure.yash no-host 256,501 244,922 381,669 260,019 1.49 1.01
hello-world no-host 151 83 3,602 342 23.85 2.26

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.6 3.6 21.8 9.1 4.70 1.96
configure.cpython no-host 27.6 27.5 27.5 27.6 1.00 1.00
configure.ocaml no-host 20.7 20.7 20.7 20.8 1.00 1.00
configure.tcc no-host 19.5 19.6 19.6 19.6 1.00 1.01
configure.util-linux no-host 30.3 30.3 30.3 30.4 1.00 1.00
configure.yash no-host 24.5 24.5 24.6 24.5 1.00 1.00
hello-world no-host 2.9 1.7 17.2 6.2 5.91 2.12

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.2 3,666 3,666 0 673 1,821 1,172 2 0 50,000 0
abuild-print-help no-host 13 0 1 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 9,219 2 55 16.1 27.6 1,817,201 26,784 28,982 103,213 953,852 760,136 37,405 63 50,000 0
configure.util-linux no-host 7,952 2 52 22.6 30.4 2,764,726 27,105 67,639 130,425 1,375,562 1,258,739 44,794 42 135,278 1
configure.ocaml no-host 2,634 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 26 0 0 1.3 19.6 30,775 30,775 0 1,623 14,989 14,163 329 0 50,000 0
configure.yash no-host 1,036 0 1 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
1 no-host abuild-print-help 18 15 4 4.6 bash
8 no-host abuild-print-help 6 6 1 3.6 dash
15 no-host abuild-print-help 343 326 19 21.8 osh-cpython
22 no-host abuild-print-help 13 9 4 9.1 osh-native
2 no-host configure.cpython 11,392 8,307 3,356 27.6 bash
9 no-host configure.cpython 9,325 6,910 2,652 27.5 dash
16 no-host configure.cpython 16,734 12,869 4,795 27.5 osh-cpython
23 no-host configure.cpython 9,219 6,837 2,511 27.6 osh-native
4 no-host configure.ocaml 2,736 1,287 469 20.7 bash
11 no-host configure.ocaml 2,706 1,268 443 20.7 dash
18 no-host configure.ocaml 3,356 1,838 641 20.7 osh-cpython
25 no-host configure.ocaml 2,634 1,191 456 20.8 osh-native
5 no-host configure.tcc 30 25 5 19.5 bash
12 no-host configure.tcc 25 24 2 19.6 dash
19 no-host configure.tcc 193 151 45 19.6 osh-cpython
26 no-host configure.tcc 26 22 5 19.6 osh-native
3 no-host configure.util-linux 8,444 6,318 2,391 30.3 bash
10 no-host configure.util-linux 9,053 6,946 2,388 30.3 dash
17 no-host configure.util-linux 19,747 15,996 4,312 30.3 osh-cpython
24 no-host configure.util-linux 7,952 5,942 2,088 30.4 osh-native
6 no-host configure.yash 1,126 789 342 24.5 bash
13 no-host configure.yash 1,051 743 309 24.5 dash
20 no-host configure.yash 1,632 1,217 438 24.6 osh-cpython
27 no-host configure.yash 1,036 774 263 24.5 osh-native
0 no-host hello-world 1 1 0 2.9 bash
7 no-host hello-world 0 0 0 1.7 dash
14 no-host hello-world 31 17 13 17.2 osh-cpython
21 no-host hello-world 2 2 0 6.2 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
0 no-host hello-world 151 0 0 0 8 0 1 0 bash
1 no-host abuild-print-help 2,581 0 0 0 16 0 41 0 bash
2 no-host configure.cpython 2,217,807 1 0 0 32,928 0 14,730 2,143 bash
3 no-host configure.util-linux 2,100,912 0 0 0 42,400 0 18,837 1,843 bash
4 no-host configure.ocaml 410,421 0 0 0 5,120 0 1,940 240 bash
5 no-host configure.tcc 6,535 0 0 0 104 0 49 1 bash
6 no-host configure.yash 256,501 0 0 0 4,120 0 867 75 bash
7 no-host hello-world 83 0 0 0 8 0 1 0 dash
8 no-host abuild-print-help 1,111 0 0 0 8 0 37 0 dash
9 no-host configure.cpython 2,238,674 0 0 0 32,992 0 15,127 2,065 dash
10 no-host configure.util-linux 2,271,559 0 0 0 42,584 0 24,088 8,386 dash
11 no-host configure.ocaml 391,971 0 0 0 5,112 0 1,935 223 dash
12 no-host configure.tcc 5,495 0 0 0 96 0 47 2 dash
13 no-host configure.yash 244,922 0 0 0 3,720 0 870 91 dash
14 no-host hello-world 3,602 0 0 0 8 0 7 3 osh-cpython
15 no-host abuild-print-help 22,654 0 0 0 8 0 44 10 osh-cpython
16 no-host configure.cpython 6,066,731 1 0 0 27,512 0 16,194 4,691 osh-cpython
17 no-host configure.util-linux 5,246,972 0 0 0 39,144 0 17,187 1,487 osh-cpython
18 no-host configure.ocaml 633,640 0 0 0 5,112 0 1,875 236 osh-cpython
19 no-host configure.tcc 22,974 0 0 0 96 0 50 7 osh-cpython
20 no-host configure.yash 381,669 0 0 0 3,728 0 852 97 osh-cpython
21 no-host hello-world 342 0 0 0 16 0 1 0 osh-native
22 no-host abuild-print-help 3,147 0 0 0 16 0 32 2 osh-native
23 no-host configure.cpython 2,282,864 0 0 0 27,520 0 13,306 970 osh-native
24 no-host configure.util-linux 2,055,782 0 0 0 39,144 0 17,204 920 osh-native
25 no-host configure.ocaml 415,813 0 0 0 5,120 0 1,939 233 osh-native
26 no-host configure.tcc 7,021 0 0 0 104 0 47 4 osh-native
27 no-host configure.yash 260,019 0 0 0 3,736 0 852 81 osh-native

Shell and Host

shell label shell id
bash bash-9d4032d8
dash dash-308ec8e6
osh-cpython osh-755524c3
osh-native osh-6f1fb04c
host label host id
no-host no-host-bcfc81f0

raw files