OSH Runtime Performance

Source code: oil/benchmarks/osh-runtime.sh

Elapsed Time by Shell (milliseconds)

Some benchmarks call many external tools, while some exercise the shell interpreter itself. Parse time is included.

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 12 5 349 14 30.30 1.20
configure.cpython no-host 9,898 9,057 20,911 9,470 2.11 0.96
configure.ocaml no-host 2,756 2,798 3,838 2,712 1.39 0.98
configure.tcc no-host 28 34 128 32 4.63 1.15
configure.yash no-host 1,077 1,425 1,608 1,136 1.49 1.05
hello-world no-host 1 0 30 2 37.70 2.13

Memory Usage (Max Resident Set Size in MB)

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 5 4 22 9 4.69 1.95
configure.cpython no-host 28 28 29 28 1.06 1.00
configure.ocaml no-host 21 21 21 21 1.00 1.00
configure.tcc no-host 19 20 20 20 1.01 1.01
configure.yash no-host 25 25 25 25 1.00 1.00
hello-world no-host 3 2 17 6 6.11 2.21

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 14 0 2 2.9 9.1 117,511 67,645 43,070 4,853 55,552 57,106 477 3 86,140 1
configure.cpython no-host 9,470 5 146 17.8 27.6 1,817,231 106,953 66,067 103,242 953,852 760,137 37,405 68 115,538 2
configure.ocaml no-host 2,712 1 2 2.7 20.8 152,190 20,289 8,751 8,767 73,943 69,480 2,375 3 50,000 0
configure.tcc no-host 32 0 0 1.3 19.6 30,781 30,781 0 1,628 14,989 14,164 329 0 50,000 0
configure.yash no-host 1,136 1 2 2.6 24.6 142,149 15,574 8,569 7,684 72,905 61,560 2,608 3 50,000 0

Details of All Tasks

task id host name workload elapsed ms user ms sys ms max rss MB shell label
0 no-host hello-world 1 0 1 2.8 bash
1 no-host abuild-print-help 12 8 4 4.6 bash
2 no-host configure.cpython 9,898 7,267 2,827 27.6 bash
3 no-host configure.ocaml 2,756 1,268 505 20.8 bash
4 no-host configure.tcc 28 22 6 19.4 bash
5 no-host configure.yash 1,077 807 273 24.6 bash
6 no-host hello-world 0 0 0 1.7 dash
7 no-host abuild-print-help 5 3 2 3.7 dash
8 no-host configure.cpython 9,057 6,646 2,619 27.6 dash
9 no-host configure.ocaml 2,798 1,261 543 20.7 dash
10 no-host configure.tcc 34 20 14 19.5 dash
11 no-host configure.yash 1,425 1,012 414 24.6 dash
12 no-host hello-world 30 23 7 17.2 osh-cpython
13 no-host abuild-print-help 349 316 35 21.8 osh-cpython
14 no-host configure.cpython 20,911 15,202 7,024 29.3 osh-cpython
15 no-host configure.ocaml 3,838 1,975 983 20.7 osh-cpython
16 no-host configure.tcc 128 119 11 19.5 osh-cpython
17 no-host configure.yash 1,608 1,173 459 24.6 osh-cpython
18 no-host hello-world 2 2 0 6.2 osh-native
19 no-host abuild-print-help 14 11 3 9.1 osh-native
20 no-host configure.cpython 9,470 6,992 2,617 27.6 osh-native
21 no-host configure.ocaml 2,712 1,201 529 20.8 osh-native
22 no-host configure.tcc 32 25 7 19.6 osh-native
23 no-host configure.yash 1,136 763 372 24.6 osh-native

Shell and Host Details

shell label shell id
bash bash-87e2675e
dash dash-308ec8e6
osh-cpython osh-68122bf9
osh-native osh-65a8b032
host label host id
no-host no-host-bcfc81f0

raw files