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 11 5 317 13 30.04 1.22
configure.cpython no-host 8,557 8,339 18,199 8,280 2.13 0.97
configure.ocaml no-host 2,593 3,020 3,114 3,003 1.20 1.16
configure.tcc no-host 26 32 125 29 4.76 1.10
configure.util-linux no-host 7,618 8,538 19,156 7,887 2.51 1.04
configure.yash no-host 1,035 1,077 1,547 1,088 1.50 1.05
hello-world no-host 1 0 30 2 39.38 2.27

Minor Page Faults

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 2,528 1,098 22,671 3,158 8.97 1.25
configure.cpython no-host 2,222,124 2,241,028 6,079,266 2,280,913 2.74 1.03
configure.ocaml no-host 410,730 391,652 633,816 415,591 1.54 1.01
configure.tcc no-host 6,557 5,489 22,981 6,992 3.50 1.07
configure.util-linux no-host 2,099,303 2,266,567 5,223,051 2,056,401 2.49 0.98
configure.yash no-host 256,825 245,453 381,698 259,625 1.49 1.01
hello-world no-host 155 82 3,599 342 23.22 2.21

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.8 9.1 4.80 2.02
configure.cpython no-host 27.5 27.6 27.6 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.6 19.4 19.5 19.5 1.00 1.00
configure.util-linux no-host 30.4 30.3 30.3 30.3 1.00 1.00
configure.yash no-host 24.6 24.6 24.5 24.5 1.00 1.00
hello-world no-host 3.1 1.7 17.1 6.2 5.61 2.02

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 8,280 1 52 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,887 2 48 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 3,003 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 29 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,088 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 11 8 2 4.5 bash
8 no-host abuild-print-help 5 3 2 3.5 dash
15 no-host abuild-print-help 317 299 19 21.8 osh-cpython
22 no-host abuild-print-help 13 10 4 9.1 osh-native
2 no-host configure.cpython 8,557 6,371 2,353 27.5 bash
9 no-host configure.cpython 8,339 6,396 2,133 27.6 dash
16 no-host configure.cpython 18,199 13,780 5,468 27.6 osh-cpython
23 no-host configure.cpython 8,280 6,053 2,338 27.6 osh-native
4 no-host configure.ocaml 2,593 1,209 401 20.7 bash
11 no-host configure.ocaml 3,020 1,464 563 20.7 dash
18 no-host configure.ocaml 3,114 1,648 556 20.7 osh-cpython
25 no-host configure.ocaml 3,003 1,508 509 20.8 osh-native
5 no-host configure.tcc 26 22 5 19.6 bash
12 no-host configure.tcc 32 21 10 19.4 dash
19 no-host configure.tcc 125 104 23 19.5 osh-cpython
26 no-host configure.tcc 29 24 5 19.5 osh-native
3 no-host configure.util-linux 7,618 5,888 1,931 30.4 bash
10 no-host configure.util-linux 8,538 6,522 2,201 30.3 dash
17 no-host configure.util-linux 19,156 15,607 4,172 30.3 osh-cpython
24 no-host configure.util-linux 7,887 5,951 2,010 30.3 osh-native
6 no-host configure.yash 1,035 754 284 24.6 bash
13 no-host configure.yash 1,077 757 321 24.6 dash
20 no-host configure.yash 1,547 1,134 436 24.5 osh-cpython
27 no-host configure.yash 1,088 777 312 24.5 osh-native
0 no-host hello-world 1 1 0 3.1 bash
7 no-host hello-world 0 0 0 1.7 dash
14 no-host hello-world 30 22 7 17.1 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
1 no-host abuild-print-help 2,528 0 0 0 16 0 41 1 bash
8 no-host abuild-print-help 1,098 0 0 0 8 0 39 1 dash
15 no-host abuild-print-help 22,671 0 0 0 8 0 45 4 osh-cpython
22 no-host abuild-print-help 3,158 0 0 0 16 0 35 3 osh-native
2 no-host configure.cpython 2,222,124 0 0 0 32,928 0 14,707 1,441 bash
9 no-host configure.cpython 2,241,028 1 0 0 32,992 0 15,032 1,231 dash
16 no-host configure.cpython 6,079,266 4 0 0 27,512 0 16,197 4,899 osh-cpython
23 no-host configure.cpython 2,280,913 0 0 0 27,520 0 13,274 942 osh-native
4 no-host configure.ocaml 410,730 0 0 0 5,120 0 1,946 221 bash
11 no-host configure.ocaml 391,652 0 0 0 5,112 0 1,921 208 dash
18 no-host configure.ocaml 633,816 0 0 0 5,112 0 1,854 194 osh-cpython
25 no-host configure.ocaml 415,591 0 0 0 5,120 0 1,936 219 osh-native
5 no-host configure.tcc 6,557 0 0 0 104 0 49 3 bash
12 no-host configure.tcc 5,489 0 0 0 96 0 47 1 dash
19 no-host configure.tcc 22,981 0 0 0 96 0 53 8 osh-cpython
26 no-host configure.tcc 6,992 0 0 0 104 0 47 4 osh-native
3 no-host configure.util-linux 2,099,303 0 0 0 42,400 0 20,635 3,458 bash
10 no-host configure.util-linux 2,266,567 0 0 0 42,584 0 21,517 5,891 dash
17 no-host configure.util-linux 5,223,051 0 0 0 39,120 0 17,159 1,461 osh-cpython
24 no-host configure.util-linux 2,056,401 2 0 0 39,136 0 17,167 967 osh-native
6 no-host configure.yash 256,825 0 0 0 4,120 0 870 83 bash
13 no-host configure.yash 245,453 0 0 0 3,720 0 872 90 dash
20 no-host configure.yash 381,698 0 0 0 3,728 0 856 119 osh-cpython
27 no-host configure.yash 259,625 0 0 0 3,736 0 849 77 osh-native
0 no-host hello-world 155 0 0 0 8 0 1 0 bash
7 no-host hello-world 82 0 0 0 8 0 1 0 dash
14 no-host hello-world 3,599 0 0 0 8 0 7 2 osh-cpython
21 no-host hello-world 342 0 0 0 16 0 1 0 osh-native

Shell and Host

shell label shell id
bash bash-844c18f3
dash dash-308ec8e6
osh-cpython osh-c8740242
osh-native osh-2e345f58
host label host id
no-host no-host-bcfc81f0

raw files