OSH Runtime Performance

Source code: benchmarks/osh-runtime.sh

Raw files

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 21 7 349 24 16.97 1.15
bin-true no-host 488 520 1,664 1,012 3.41 2.07
configure.cpython no-host 11,179 13,822 25,495 17,139 2.28 1.53
configure.ocaml no-host 3,331 4,543 5,720 4,407 1.72 1.32
configure.tcc no-host 41 46 169 60 4.16 1.48
configure.util-linux no-host 10,356 12,632 36,749 12,218 3.55 1.18
configure.yash no-host 1,608 2,162 2,994 2,410 1.86 1.50
hello-world no-host 1 1 32 2 31.90 2.10

Minor Page Faults

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 2,520 1,089 23,431 3,203 9.30 1.27
bin-true no-host 106,268 66,423 745,231 129,454 7.01 1.22
configure.cpython no-host 2,226,594 2,249,217 6,158,485 2,232,164 2.77 1.00
configure.ocaml no-host 410,428 391,717 639,353 414,243 1.56 1.01
configure.tcc no-host 6,519 5,493 23,221 6,971 3.56 1.07
configure.util-linux no-host 2,103,247 2,263,207 5,346,256 2,021,542 2.54 0.96
configure.yash no-host 256,896 244,629 385,380 257,842 1.50 1.00
hello-world no-host 154 83 3,661 352 23.77 2.29

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.71 1.96
bin-true no-host 3.1 1.5 17.6 8.2 5.62 2.62
configure.cpython no-host 27.6 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.5 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.6 24.5 24.6 1.00 1.00
hello-world no-host 3.0 1.6 17.4 6.4 5.87 2.14

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.3 6.4 3,732 3,732 0 684 1,883 1,165 2 0 50,000 0
bin-true no-host 1,012 1 3 2.7 8.2 154,697 13,053 2,806 11,737 78,352 64,608 5,012 3 50,000 0
configure.cpython no-host 17,139 2 74 15.9 27.6 1,772,613 49,204 28,515 101,770 908,059 762,784 42,399 60 50,000 0
configure.util-linux no-host 12,218 4 56 22.2 30.3 2,703,277 42,778 65,819 126,121 1,320,503 1,256,653 49,081 41 131,638 1
configure.ocaml no-host 4,407 1 2 2.7 20.8 150,039 11,052 5,145 8,602 71,637 69,800 2,680 3 50,000 0
configure.tcc no-host 60 0 0 1.3 19.5 30,532 30,532 0 1,599 14,807 14,126 350 0 50,000 0
configure.yash no-host 2,410 1 3 2.6 24.6 139,696 7,971 6,607 7,554 70,309 61,833 2,990 3 50,000 0
abuild-print-help no-host 24 0 1 2.8 9.1 116,275 64,462 42,670 4,609 54,552 57,114 478 3 85,340 1

rusage Details

task id host name workload elapsed ms user ms sys ms max rss MB shell label
7 no-host abuild-print-help 21 15 6 4.6 bash
15 no-host abuild-print-help 7 7 1 3.6 dash
23 no-host abuild-print-help 349 294 59 21.8 osh-cpython
31 no-host abuild-print-help 24 15 10 9.1 osh-native
1 no-host bin-true 488 377 129 3.1 bash
9 no-host bin-true 520 384 141 1.5 dash
17 no-host bin-true 1,664 1,103 753 17.6 osh-cpython
25 no-host bin-true 1,012 652 374 8.2 osh-native
2 no-host configure.cpython 11,179 7,337 4,145 27.6 bash
10 no-host configure.cpython 13,822 8,848 5,408 27.6 dash
18 no-host configure.cpython 25,495 15,741 11,508 27.6 osh-cpython
26 no-host configure.cpython 17,139 10,097 7,393 27.6 osh-native
4 no-host configure.ocaml 3,331 1,482 882 20.7 bash
12 no-host configure.ocaml 4,543 2,022 1,543 20.7 dash
20 no-host configure.ocaml 5,720 2,742 2,189 20.7 osh-cpython
28 no-host configure.ocaml 4,407 1,986 1,481 20.8 osh-native
5 no-host configure.tcc 41 35 6 19.5 bash
13 no-host configure.tcc 46 28 18 19.5 dash
21 no-host configure.tcc 169 87 85 19.5 osh-cpython
29 no-host configure.tcc 60 36 24 19.5 osh-native
3 no-host configure.util-linux 10,356 7,024 3,658 30.4 bash
11 no-host configure.util-linux 12,632 8,214 4,783 30.3 dash
19 no-host configure.util-linux 36,749 21,781 16,444 30.4 osh-cpython
27 no-host configure.util-linux 12,218 7,498 4,845 30.3 osh-native
6 no-host configure.yash 1,608 944 670 24.5 bash
14 no-host configure.yash 2,162 1,329 836 24.6 dash
22 no-host configure.yash 2,994 1,734 1,319 24.5 osh-cpython
30 no-host configure.yash 2,410 1,364 1,051 24.6 osh-native
0 no-host hello-world 1 1 0 3.0 bash
8 no-host hello-world 1 1 0 1.6 dash
16 no-host hello-world 32 24 8 17.4 osh-cpython
24 no-host hello-world 2 0 2 6.4 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
7 no-host abuild-print-help 2,520 0 0 0 16 0 39 2 bash
15 no-host abuild-print-help 1,089 0 0 0 8 0 39 0 dash
23 no-host abuild-print-help 23,431 0 0 0 8 0 47 12 osh-cpython
31 no-host abuild-print-help 3,203 0 0 0 16 0 31 2 osh-native
1 no-host bin-true 106,268 0 0 0 8 0 2,000 55 bash
9 no-host bin-true 66,423 0 0 0 8 0 2,000 40 dash
17 no-host bin-true 745,231 0 0 0 8 0 2,007 196 osh-cpython
25 no-host bin-true 129,454 0 0 0 16 0 1,994 103 osh-native
2 no-host configure.cpython 2,226,594 0 0 0 32,928 0 14,905 1,316 bash
10 no-host configure.cpython 2,249,217 0 0 0 32,992 0 14,260 1,636 dash
18 no-host configure.cpython 6,158,485 0 0 0 27,512 0 16,216 5,202 osh-cpython
26 no-host configure.cpython 2,232,164 1 0 0 27,520 0 13,610 1,788 osh-native
4 no-host configure.ocaml 410,428 0 0 0 5,120 0 1,918 266 bash
12 no-host configure.ocaml 391,717 0 0 0 5,112 0 1,918 258 dash
20 no-host configure.ocaml 639,353 0 0 0 5,112 0 1,894 351 osh-cpython
28 no-host configure.ocaml 414,243 0 0 0 5,120 0 1,858 285 osh-native
5 no-host configure.tcc 6,519 0 0 0 104 0 49 1 bash
13 no-host configure.tcc 5,493 0 0 0 96 0 47 2 dash
21 no-host configure.tcc 23,221 0 0 0 96 0 53 8 osh-cpython
29 no-host configure.tcc 6,971 0 0 0 104 0 47 5 osh-native
3 no-host configure.util-linux 2,103,247 0 0 0 42,400 0 20,390 3,690 bash
11 no-host configure.util-linux 2,263,207 0 0 0 42,584 0 21,546 5,909 dash
19 no-host configure.util-linux 5,346,256 0 0 0 39,136 0 17,100 2,354 osh-cpython
27 no-host configure.util-linux 2,021,542 0 0 0 39,120 0 17,128 1,191 osh-native
6 no-host configure.yash 256,896 0 0 0 4,120 0 871 80 bash
14 no-host configure.yash 244,629 0 0 0 3,720 0 870 80 dash
22 no-host configure.yash 385,380 0 0 0 3,728 0 858 108 osh-cpython
30 no-host configure.yash 257,842 0 0 0 3,736 0 855 95 osh-native
0 no-host hello-world 154 0 0 0 8 0 1 0 bash
8 no-host hello-world 83 0 0 0 8 0 1 0 dash
16 no-host hello-world 3,661 0 0 0 8 0 7 3 osh-cpython
24 no-host hello-world 352 0 0 0 16 0 1 0 osh-native

Shell and Host

shell label shell id
bash bash-1a09d3b7
dash dash-308ec8e6
osh-cpython osh-2d79797d
osh-native osh-e768872d
host label host id
no-host no-host-bed27d13