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 1,072.8 2,487.2
mksh 111,674 361.8 990.9
oil-native 118,863 271.4 805.9
bash 118,863 229.2 577.8
zsh 118,863 24.1 62.7
osh-cpython 118,863 2.8 9.9
osh-ovm 118,863 2.6 9.2

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 12.4 25.2 1,679 t4014-format-patch.sh
lisa 12.5 25.2 1,679 t4014-format-patch.sh
flanders 15.2 27.9 1,733 functions
lisa 15.2 27.9 1,733 functions
flanders 15.7 28.6 2,029 configure-helper.sh
lisa 15.6 28.6 2,029 configure-helper.sh
flanders 17.3 29.9 2,512 abuild
lisa 17.3 30.2 2,512 abuild
flanders 16.1 28.9 2,698 Build.sh
lisa 15.8 28.9 2,698 Build.sh
flanders 13.0 25.6 3,123 t9300-fast-import.sh
lisa 12.8 25.6 3,123 t9300-fast-import.sh
flanders 26.1 38.6 5,160 test-cmd-util.sh
lisa 26.0 38.6 5,160 test-cmd-util.sh
flanders 27.5 40.4 9,661 ltmain.sh
lisa 27.6 40.4 9,661 ltmain.sh
flanders 47.7 60.5 20,489 configure
lisa 47.6 60.5 20,489 configure
flanders 109.7 122.6 69,779 configure-coreutils
lisa 109.8 122.6 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-3122300f
osh-ovm osh-345bb6bb
oil-native osh_eval.opt.stripped-2ad7cd2b
host label host id
flanders flanders-2cc9f781
lisa lisa-88603626

Raw Data

filename
flanders.2020-07-06__17-27-02.times.csv
lisa.2020-07-06__17-39-01.times.csv

Parse Time Breakdown by File

Elasped Time in milliseconds

host label bash dash mksh zsh osh-ovm osh-cpython oil-native osh to bash ratio num lines filename
flanders 11 4 6 165 324 315 10 0.9 1,679 t4014-format-patch.sh
flanders 12 5 14 50 1,101 920 13 1.1 1,733 functions
flanders 21 NA NA 91 1,018 920 16 0.8 2,029 configure-helper.sh
flanders 20 5 17 75 1,486 1,303 18 0.9 2,512 abuild
flanders 18 5 11 161 1,061 962 18 1.0 2,698 Build.sh
flanders 16 4 8 213 317 357 9 0.6 3,123 t9300-fast-import.sh
flanders 47 NA NA 253 2,881 3,283 32 0.7 5,160 test-cmd-util.sh
flanders 48 15 34 293 3,559 3,322 40 0.8 9,661 ltmain.sh
flanders 96 22 62 745 9,589 9,192 78 0.8 20,489 configure
flanders 230 44 158 2,888 24,173 22,065 203 0.9 69,779 configure-coreutils
lisa 4 2 2 66 92 90 3 0.7 1,679 t4014-format-patch.sh
lisa 4 2 4 23 288 274 5 1.2 1,733 functions
lisa 6 NA NA 42 291 271 5 0.9 2,029 configure-helper.sh
lisa 6 2 4 32 435 412 6 1.0 2,512 abuild
lisa 5 2 4 73 326 339 5 1.0 2,698 Build.sh
lisa 5 2 2 84 104 122 3 0.6 3,123 t9300-fast-import.sh
lisa 19 NA NA 116 919 869 11 0.6 5,160 test-cmd-util.sh
lisa 21 5 11 132 1,125 984 13 0.6 9,661 ltmain.sh
lisa 39 9 22 308 2,393 2,143 28 0.7 20,489 configure
lisa 96 22 62 1,019 6,970 6,445 69 0.7 69,779 configure-coreutils

Parsing Rate in lines/millisecond

host label bash dash mksh zsh osh-ovm osh-cpython oil-native num lines filename
flanders 151.3 479.7 275.2 10.2 5.2 5.3 176.7 1,679 t4014-format-patch.sh
flanders 138.6 368.7 126.5 34.3 1.6 1.9 130.3 1,733 functions
flanders 98.5 NA NA 22.3 2.0 2.2 130.1 2,029 configure-helper.sh
flanders 123.1 474.0 146.9 33.4 1.7 1.9 138.8 2,512 abuild
flanders 147.4 550.6 243.1 16.8 2.5 2.8 146.6 2,698 Build.sh
flanders 201.5 821.8 416.4 14.7 9.9 8.7 343.2 3,123 t9300-fast-import.sh
flanders 110.3 NA NA 20.4 1.8 1.6 159.3 5,160 test-cmd-util.sh
flanders 201.3 627.3 286.7 33.0 2.7 2.9 239.7 9,661 ltmain.sh
flanders 214.3 922.9 332.6 27.5 2.1 2.2 262.7 20,489 configure
flanders 303.7 1,575.1 441.9 24.2 2.9 3.2 343.2 69,779 configure-coreutils
lisa 399.8 1,119.3 799.5 25.2 18.2 18.6 579.0 1,679 t4014-format-patch.sh
lisa 412.6 1,019.4 433.2 75.7 6.0 6.3 353.7 1,733 functions
lisa 368.9 NA NA 48.9 7.0 7.5 397.8 2,029 configure-helper.sh
lisa 411.8 1,046.7 570.9 77.5 5.8 6.1 405.2 2,512 abuild
lisa 529.0 1,284.8 599.6 36.9 8.3 8.0 518.8 2,698 Build.sh
lisa 612.4 1,951.9 1,357.8 37.2 29.9 25.5 1,076.9 3,123 t9300-fast-import.sh
lisa 271.6 NA NA 44.6 5.6 5.9 477.8 5,160 test-cmd-util.sh
lisa 453.6 1,971.6 855.0 73.1 8.6 9.8 737.5 9,661 ltmain.sh
lisa 524.0 2,382.4 910.6 66.5 8.6 9.6 739.7 20,489 configure
lisa 726.1 3,157.4 1,132.8 68.5 10.0 10.8 1,015.7 69,779 configure-coreutils