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 6 508 16 41.98 1.28
configure.cpython no-host 8,564 8,881 19,783 8,933 2.31 1.04
configure.ocaml no-host 2,671 2,958 3,726 2,669 1.40 1.00
configure.tcc no-host 30 29 131 29 4.36 0.95
configure.util-linux no-host 8,487 9,533 21,679 8,016 2.55 0.94
configure.yash no-host 1,078 1,360 1,696 1,062 1.57 0.99
hello-world no-host 1 0 42 2 57.68 2.26

Minor Page Faults

workload host name bash dash osh-cpython osh-native py bash ratio native bash ratio
abuild-print-help no-host 2,544 1,120 22,633 3,177 8.90 1.25
configure.cpython no-host 2,228,560 2,237,530 6,070,813 2,279,461 2.72 1.02
configure.ocaml no-host 410,377 391,913 633,824 415,847 1.54 1.01
configure.tcc no-host 6,553 5,483 22,971 6,991 3.51 1.07
configure.util-linux no-host 2,101,218 2,269,616 5,236,885 2,052,115 2.49 0.98
configure.yash no-host 256,452 244,945 382,131 258,504 1.49 1.01
hello-world no-host 154 82 3,605 341 23.41 2.21

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 4.5 3.6 21.8 9.1 4.82 2.02
configure.cpython no-host 27.6 27.5 27.6 27.6 1.00 1.00
configure.ocaml no-host 20.6 20.7 20.8 20.7 1.01 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.3 30.3 1.00 1.00
configure.yash no-host 24.6 24.4 24.7 24.5 1.00 1.00
hello-world no-host 3.0 1.5 17.2 6.1 5.73 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.1 3,666 3,666 0 673 1,821 1,172 2 0 50,000 0
abuild-print-help no-host 16 1 2 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,933 1 54 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 8,016 2 50 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 2,669 0 1 2.7 20.7 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,062 0 1 2.6 24.5 142,131 9,792 6,577 7,667 72,905 61,559 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 1 0 3.0 bash
1 no-host abuild-print-help 12 12 0 4.5 bash
2 no-host configure.cpython 8,564 6,493 2,289 27.6 bash
3 no-host configure.util-linux 8,487 6,423 2,322 30.4 bash
4 no-host configure.ocaml 2,671 1,263 428 20.6 bash
5 no-host configure.tcc 30 27 4 19.5 bash
6 no-host configure.yash 1,078 811 271 24.6 bash
7 no-host hello-world 0 0 0 1.5 dash
8 no-host abuild-print-help 6 5 1 3.6 dash
9 no-host configure.cpython 8,881 6,490 2,626 27.5 dash
10 no-host configure.util-linux 9,533 7,116 2,666 30.3 dash
11 no-host configure.ocaml 2,958 1,406 562 20.7 dash
12 no-host configure.tcc 29 27 2 19.5 dash
13 no-host configure.yash 1,360 944 417 24.4 dash
14 no-host hello-world 42 33 9 17.2 osh-cpython
15 no-host abuild-print-help 508 472 38 21.8 osh-cpython
16 no-host configure.cpython 19,783 14,316 6,600 27.6 osh-cpython
17 no-host configure.util-linux 21,679 16,725 5,557 30.3 osh-cpython
18 no-host configure.ocaml 3,726 2,027 809 20.8 osh-cpython
19 no-host configure.tcc 131 116 17 19.5 osh-cpython
20 no-host configure.yash 1,696 1,289 431 24.7 osh-cpython
21 no-host hello-world 2 2 0 6.1 osh-native
22 no-host abuild-print-help 16 10 6 9.1 osh-native
23 no-host configure.cpython 8,933 6,549 2,508 27.6 osh-native
24 no-host configure.util-linux 8,016 6,017 2,075 30.3 osh-native
25 no-host configure.ocaml 2,669 1,171 510 20.7 osh-native
26 no-host configure.tcc 29 22 7 19.5 osh-native
27 no-host configure.yash 1,062 759 304 24.5 osh-native

I/O 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 154 0 0 0 8 0 1 0 bash
1 no-host abuild-print-help 2,544 0 0 0 16 0 41 2 bash
2 no-host configure.cpython 2,228,560 0 0 0 32,928 0 14,200 1,144 bash
3 no-host configure.util-linux 2,101,218 1 0 0 42,400 0 20,478 3,571 bash
4 no-host configure.ocaml 410,377 0 0 0 5,120 0 1,940 234 bash
5 no-host configure.tcc 6,553 0 0 0 104 0 49 3 bash
6 no-host configure.yash 256,452 0 0 0 4,120 0 865 72 bash
7 no-host hello-world 82 0 0 0 8 0 1 0 dash
8 no-host abuild-print-help 1,120 0 0 0 8 0 39 0 dash
9 no-host configure.cpython 2,237,530 0 0 0 32,992 0 15,695 2,676 dash
10 no-host configure.util-linux 2,269,616 1 0 0 42,584 0 21,536 5,892 dash
11 no-host configure.ocaml 391,913 0 0 0 5,112 0 1,933 222 dash
12 no-host configure.tcc 5,483 0 0 0 96 0 47 1 dash
13 no-host configure.yash 244,945 0 0 0 3,720 0 867 90 dash
14 no-host hello-world 3,605 0 0 0 8 0 7 4 osh-cpython
15 no-host abuild-print-help 22,633 0 0 0 8 0 44 13 osh-cpython
16 no-host configure.cpython 6,070,813 0 0 0 27,512 0 13,517 1,674 osh-cpython
17 no-host configure.util-linux 5,236,885 0 0 0 39,112 0 17,190 1,527 osh-cpython
18 no-host configure.ocaml 633,824 0 0 0 5,112 0 1,860 221 osh-cpython
19 no-host configure.tcc 22,971 0 0 0 96 0 52 7 osh-cpython
20 no-host configure.yash 382,131 0 0 0 3,728 0 856 118 osh-cpython
21 no-host hello-world 341 0 0 0 16 0 1 0 osh-native
22 no-host abuild-print-help 3,177 0 0 0 16 0 39 3 osh-native
23 no-host configure.cpython 2,279,461 0 0 0 27,520 0 13,569 1,245 osh-native
24 no-host configure.util-linux 2,052,115 0 0 0 39,128 0 16,888 982 osh-native
25 no-host configure.ocaml 415,847 0 0 0 5,120 0 1,934 237 osh-native
26 no-host configure.tcc 6,991 0 0 0 104 0 47 1 osh-native
27 no-host configure.yash 258,504 0 0 0 3,736 0 851 95 osh-native

Shell and Host Details

shell label shell id
bash bash-4a96662b
dash dash-308ec8e6
osh-cpython osh-f9e5f95b
osh-native osh-ed136692
host label host id
no-host no-host-bcfc81f0

raw files