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 19 10 448 22 23.57 1.18
bin-true no-host 683 542 2,242 819 3.28 1.20
configure.cpython no-host 15,322 15,374 28,869 15,544 1.88 1.01
configure.ocaml no-host 3,854 3,799 4,698 3,921 1.22 1.02
configure.tcc no-host 48 42 197 50 4.10 1.04
configure.util-linux no-host 14,297 15,038 31,458 14,620 2.20 1.02
configure.yash no-host 1,846 1,790 2,491 1,869 1.35 1.01
hello-world no-host 2 1 48 3 28.76 1.69

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,125 23,180 3,219 9.13 1.27
bin-true no-host 107,322 66,424 749,453 128,137 6.98 1.19
configure.cpython no-host 2,218,668 2,244,450 6,103,647 2,228,702 2.75 1.00
configure.ocaml no-host 410,903 391,051 636,493 414,364 1.55 1.01
configure.tcc no-host 6,541 5,486 23,184 6,992 3.54 1.07
configure.util-linux no-host 2,099,000 2,260,738 5,315,543 2,008,630 2.53 0.96
configure.yash no-host 255,933 244,986 384,148 259,333 1.50 1.01
hello-world no-host 152 84 3,648 344 24.00 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.5 3.4 21.5 8.9 4.82 2.00
bin-true no-host 2.9 1.6 17.3 8.1 6.00 2.82
configure.cpython no-host 27.3 27.3 27.4 27.4 1.00 1.00
configure.ocaml no-host 20.6 20.6 20.4 20.4 0.99 0.99
configure.tcc no-host 19.3 19.4 19.3 19.3 1.00 1.00
configure.util-linux no-host 30.1 30.3 30.1 30.0 1.00 1.00
configure.yash no-host 24.2 24.2 24.4 24.2 1.01 1.00
hello-world no-host 2.8 1.4 17.2 6.0 6.24 2.19

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 3 0 0 0.3 6.0 3,720 3,720 0 684 1,872 1,164 2 0 50,000 0
bin-true no-host 819 1 2 2.7 8.1 154,685 12,990 2,797 11,737 78,341 64,607 5,012 3 50,000 0
configure.cpython no-host 15,544 1 64 15.8 27.4 1,772,601 49,195 28,506 101,770 908,048 762,783 42,399 60 50,000 0
configure.util-linux no-host 14,620 3 63 22.2 30.0 2,703,265 44,764 65,790 126,121 1,320,492 1,256,652 49,081 41 131,580 1
configure.ocaml no-host 3,921 1 2 2.7 20.4 150,027 11,043 5,136 8,602 71,626 69,799 2,680 3 50,000 0
configure.tcc no-host 50 0 0 1.3 19.3 30,520 30,520 0 1,599 14,796 14,125 350 0 50,000 0
configure.yash no-host 1,869 1 2 2.6 24.2 139,684 7,962 6,598 7,554 70,298 61,832 2,990 3 50,000 0
abuild-print-help no-host 22 1 2 2.8 8.9 116,263 64,453 42,661 4,609 54,541 57,113 478 3 85,322 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 19 14 6 4.5 bash
15 no-host abuild-print-help 10 7 3 3.4 dash
23 no-host abuild-print-help 448 420 32 21.5 osh-cpython
31 no-host abuild-print-help 22 15 8 8.9 osh-native
1 no-host bin-true 683 508 206 2.9 bash
9 no-host bin-true 542 425 125 1.6 dash
17 no-host bin-true 2,242 1,503 1,002 17.3 osh-cpython
25 no-host bin-true 819 574 258 8.1 osh-native
2 no-host configure.cpython 15,322 9,340 6,389 27.3 bash
10 no-host configure.cpython 15,374 9,366 6,439 27.3 dash
18 no-host configure.cpython 28,869 17,520 13,220 27.4 osh-cpython
26 no-host configure.cpython 15,544 9,105 6,701 27.4 osh-native
4 no-host configure.ocaml 3,854 1,690 1,202 20.6 bash
12 no-host configure.ocaml 3,799 1,545 1,271 20.6 dash
20 no-host configure.ocaml 4,698 2,315 1,588 20.4 osh-cpython
28 no-host configure.ocaml 3,921 1,690 1,259 20.4 osh-native
5 no-host configure.tcc 48 34 15 19.3 bash
13 no-host configure.tcc 42 31 11 19.4 dash
21 no-host configure.tcc 197 155 45 19.3 osh-cpython
29 no-host configure.tcc 50 25 25 19.3 osh-native
3 no-host configure.util-linux 14,297 9,002 5,771 30.1 bash
11 no-host configure.util-linux 15,038 9,197 6,333 30.3 dash
19 no-host configure.util-linux 31,458 21,014 11,543 30.1 osh-cpython
27 no-host configure.util-linux 14,620 8,811 6,020 30.0 osh-native
6 no-host configure.yash 1,846 1,025 827 24.2 bash
14 no-host configure.yash 1,790 1,037 756 24.2 dash
22 no-host configure.yash 2,491 1,565 968 24.4 osh-cpython
30 no-host configure.yash 1,869 1,057 816 24.2 osh-native
0 no-host hello-world 2 2 0 2.8 bash
8 no-host hello-world 1 0 1 1.4 dash
16 no-host hello-world 48 16 31 17.2 osh-cpython
24 no-host hello-world 3 3 0 6.0 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,540 0 0 0 16 0 41 0 bash
15 no-host abuild-print-help 1,125 0 0 0 8 0 39 1 dash
23 no-host abuild-print-help 23,180 0 0 0 8 0 47 7 osh-cpython
31 no-host abuild-print-help 3,219 0 0 0 16 0 41 2 osh-native
1 no-host bin-true 107,322 0 0 0 8 0 1,992 51 bash
9 no-host bin-true 66,424 0 0 0 8 0 1,987 49 dash
17 no-host bin-true 749,453 0 0 0 8 0 1,990 145 osh-cpython
25 no-host bin-true 128,137 0 0 0 16 0 1,995 58 osh-native
2 no-host configure.cpython 2,218,668 0 0 0 32,928 0 14,501 1,220 bash
10 no-host configure.cpython 2,244,450 1 0 0 32,992 0 14,611 1,078 dash
18 no-host configure.cpython 6,103,647 1 0 0 27,512 0 13,234 1,104 osh-cpython
26 no-host configure.cpython 2,228,702 0 0 0 27,520 0 13,309 1,121 osh-native
4 no-host configure.ocaml 410,903 0 0 0 5,120 0 1,962 145 bash
12 no-host configure.ocaml 391,051 0 0 0 5,112 0 1,911 149 dash
20 no-host configure.ocaml 636,493 0 0 0 5,112 0 1,850 176 osh-cpython
28 no-host configure.ocaml 414,364 0 0 0 5,120 0 1,943 148 osh-native
5 no-host configure.tcc 6,541 0 0 0 104 0 48 0 bash
13 no-host configure.tcc 5,486 0 0 0 96 0 47 2 dash
21 no-host configure.tcc 23,184 0 0 0 96 0 53 14 osh-cpython
29 no-host configure.tcc 6,992 0 0 0 104 0 47 2 osh-native
3 no-host configure.util-linux 2,099,000 1 0 0 42,400 0 18,463 1,116 bash
11 no-host configure.util-linux 2,260,738 1 0 0 42,584 0 17,488 1,107 dash
19 no-host configure.util-linux 5,315,543 7 0 0 39,112 0 17,202 1,256 osh-cpython
27 no-host configure.util-linux 2,008,630 1 0 0 39,120 0 17,142 911 osh-native
6 no-host configure.yash 255,933 0 0 0 4,120 0 872 104 bash
14 no-host configure.yash 244,986 0 0 0 3,720 0 868 74 dash
22 no-host configure.yash 384,148 0 0 0 3,728 0 858 97 osh-cpython
30 no-host configure.yash 259,333 0 0 0 3,736 0 852 86 osh-native
0 no-host hello-world 152 0 0 0 8 0 0 1 bash
8 no-host hello-world 84 0 0 0 8 0 1 0 dash
16 no-host hello-world 3,648 0 0 0 8 0 7 6 osh-cpython
24 no-host hello-world 344 0 0 0 16 0 1 0 osh-native

Shell and Host

shell label shell id
bash bash-6bd9dbe0
dash dash-308ec8e6
osh-cpython osh-5ea0048e
osh-native osh-61580739
host label host id
no-host no-host-13226fd6