OSH Parser Performance

We run $sh -n $file for various files under various shells. This means that shell startup time is included in the elapsed time measurements, but long files are chosen to minimize its effect.

Average Parsing Rate, Measured on Two Machines (lines/ms)

shell label total lines host flanders host lisa
dash 111,674 809.8 2,532.3
mksh 111,674 287.5 1,008.8
osh-native 118,863 301.0 870.8
bash 118,863 143.4 643.9
zsh 118,863 23.4 100.6
osh-cpython 118,863 3.8 11.6
osh-ovm 118,863 3.4 11.0

Memory Used to Parse

Running under osh-ovm. Memory usage is measured in MB (powers of 10), not MiB (powers of 2).

host VmRSS MB VmPeak MB num lines filename
flanders 11.0 23.5 1,679 t4014-format-patch.sh
lisa 10.8 23.6 1,679 t4014-format-patch.sh
flanders 13.6 26.2 1,733 functions
lisa 13.6 26.5 1,733 functions
flanders 14.1 26.9 2,029 configure-helper.sh
lisa 14.1 26.9 2,029 configure-helper.sh
flanders 15.9 28.6 2,512 abuild
lisa 15.7 28.7 2,512 abuild
flanders 14.3 27.2 2,698 Build.sh
lisa 14.1 27.3 2,698 Build.sh
flanders 11.3 23.9 3,123 t9300-fast-import.sh
lisa 11.3 24.0 3,123 t9300-fast-import.sh
flanders 24.3 36.9 5,160 test-cmd-util.sh
lisa 24.3 36.9 5,160 test-cmd-util.sh
flanders 26.0 38.7 9,661 ltmain.sh
lisa 25.8 38.7 9,661 ltmain.sh
flanders 45.8 58.8 20,489 configure
lisa 45.8 58.8 20,489 configure
flanders 107.4 120.4 69,779 configure-coreutils
lisa 107.5 120.4 69,779 configure-coreutils

Shell and Host Details

shell label shell id
bash bash-d685a43c
dash dash-2887d9e6
mksh mksh-ae7d165b
zsh zsh-ca7b4198
osh-cpython osh-b1ff3a1f
osh-ovm osh-76499f26
osh-native osh_parse.opt.stripped-b0ae3ea7
host label host id
flanders flanders-0616a365
lisa lisa-b43270f9

Raw Data

filename
flanders.2020-01-10__21-52-24.times.csv
lisa.2020-01-10__21-35-24.times.csv

Parse Time Breakdown by File

Elasped Time in milliseconds

host label bash dash mksh zsh osh-ovm osh-cpython osh-native osh to bash ratio num lines filename
flanders 16 5 9 196 289 250 8 0.5 1,679 t4014-format-patch.sh
flanders 24 6 13 64 957 782 12 0.5 1,733 functions
flanders 25 NA NA 116 964 760 16 0.6 2,029 configure-helper.sh
flanders 26 8 18 93 1,252 1,031 19 0.8 2,512 abuild
flanders 23 7 15 186 938 757 14 0.6 2,698 Build.sh
flanders 24 6 8 235 289 262 8 0.3 3,123 t9300-fast-import.sh
flanders 70 NA NA 332 2,572 2,137 29 0.4 5,160 test-cmd-util.sh
flanders 80 17 42 381 2,792 2,307 38 0.5 9,661 ltmain.sh
flanders 156 29 81 909 5,822 5,392 68 0.4 20,489 configure
flanders 386 61 202 2,564 19,229 17,298 183 0.5 69,779 configure-coreutils
lisa 4 1 2 46 77 87 3 0.6 1,679 t4014-format-patch.sh
lisa 4 2 3 15 246 223 4 0.9 1,733 functions
lisa 6 NA NA 24 278 250 5 0.7 2,029 configure-helper.sh
lisa 6 2 4 21 354 368 5 0.9 2,512 abuild
lisa 5 2 3 43 270 268 5 1.0 2,698 Build.sh
lisa 6 1 3 56 85 92 3 0.5 3,123 t9300-fast-import.sh
lisa 17 NA NA 68 795 842 10 0.6 5,160 test-cmd-util.sh
lisa 18 5 12 83 923 821 13 0.7 9,661 ltmain.sh
lisa 33 11 21 192 2,060 1,864 26 0.8 20,489 configure
lisa 84 21 61 634 5,741 5,436 64 0.8 69,779 configure-coreutils

Parsing Rate in lines/millisecond

host label bash dash mksh zsh osh-ovm osh-cpython osh-native num lines filename
flanders 108.3 349.8 188.7 8.5 5.8 6.7 223.9 1,679 t4014-format-patch.sh
flanders 71.9 288.8 132.3 27.2 1.8 2.2 140.9 1,733 functions
flanders 80.2 NA NA 17.4 2.1 2.7 129.2 2,029 configure-helper.sh
flanders 98.1 322.1 138.8 26.9 2.0 2.4 130.8 2,512 abuild
flanders 116.3 402.7 183.5 14.5 2.9 3.6 196.9 2,698 Build.sh
flanders 130.1 567.8 367.4 13.3 10.8 11.9 410.9 3,123 t9300-fast-import.sh
flanders 73.5 NA NA 15.5 2.0 2.4 179.8 5,160 test-cmd-util.sh
flanders 120.9 565.0 231.7 25.4 3.5 4.2 250.9 9,661 ltmain.sh
flanders 131.8 709.0 252.6 22.5 3.5 3.8 299.5 20,489 configure
flanders 180.9 1,142.0 344.9 27.2 3.6 4.0 380.7 69,779 configure-coreutils
lisa 381.6 1,291.5 730.0 36.9 21.7 19.3 645.8 1,679 t4014-format-patch.sh
lisa 422.7 1,155.3 525.2 118.7 7.0 7.8 456.1 1,733 functions
lisa 322.1 NA NA 83.8 7.3 8.1 441.1 2,029 configure-helper.sh
lisa 448.6 1,322.1 570.9 121.9 7.1 6.8 523.3 2,512 abuild
lisa 529.0 1,349.0 793.5 62.2 10.0 10.0 550.6 2,698 Build.sh
lisa 557.7 2,230.7 1,201.2 55.3 36.6 33.9 1,156.7 3,123 t9300-fast-import.sh
lisa 300.0 NA NA 76.0 6.5 6.1 496.2 5,160 test-cmd-util.sh
lisa 525.1 2,100.2 779.1 116.5 10.5 11.8 766.7 9,661 ltmain.sh
lisa 613.4 1,932.9 957.4 106.8 9.9 11.0 785.0 20,489 configure
lisa 825.8 3,354.8 1,145.8 110.1 12.2 12.8 1,090.3 69,779 configure-coreutils