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,209.9 2,376.0
mksh 111,674 405.1 949.6
oil-native 118,863 242.4 778.4
bash 118,863 230.0 593.1
zsh 118,863 32.0 62.9
osh-cpython 118,863 3.5 10.0
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 11.2 24.0 1,679 t4014-format-patch.sh
lisa 11.1 24.0 1,679 t4014-format-patch.sh
flanders 13.8 26.7 1,733 functions
lisa 13.8 26.7 1,733 functions
flanders 14.3 27.3 2,029 configure-helper.sh
lisa 14.4 27.3 2,029 configure-helper.sh
flanders 15.7 28.6 2,512 abuild
lisa 15.8 28.7 2,512 abuild
flanders 14.7 27.4 2,698 Build.sh
lisa 14.7 27.4 2,698 Build.sh
flanders 11.6 24.4 3,123 t9300-fast-import.sh
lisa 11.5 24.4 3,123 t9300-fast-import.sh
flanders 24.8 37.3 5,160 test-cmd-util.sh
lisa 24.5 37.4 5,160 test-cmd-util.sh
flanders 26.4 39.1 9,661 ltmain.sh
lisa 26.3 39.1 9,661 ltmain.sh
flanders 46.0 58.9 20,489 configure
lisa 46.2 58.9 20,489 configure
flanders 107.9 120.5 69,779 configure-coreutils
lisa 107.6 120.5 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-b26645db
osh-ovm osh-1714418d
oil-native osh_eval.opt.stripped-beed19cb
host label host id
flanders flanders-46fb0378
lisa lisa-0616a365

Raw Data

filename
flanders.2020-03-02__12-21-52.times.csv
lisa.2020-03-02__12-49-15.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 14 4 6 153 235 216 9 0.6 1,679 t4014-format-patch.sh
flanders 13 4 10 46 821 675 14 1.1 1,733 functions
flanders 20 NA NA 78 953 719 16 0.8 2,029 configure-helper.sh
flanders 20 6 15 64 1,408 1,026 21 1.1 2,512 abuild
flanders 17 5 10 150 1,022 737 16 1.0 2,698 Build.sh
flanders 20 4 8 195 302 263 11 0.6 3,123 t9300-fast-import.sh
flanders 45 NA NA 210 2,828 2,798 37 0.8 5,160 test-cmd-util.sh
flanders 50 11 33 241 3,331 2,905 44 0.9 9,661 ltmain.sh
flanders 95 18 53 591 7,175 6,560 87 0.9 20,489 configure
flanders 222 41 141 1,980 27,671 18,051 235 1.1 69,779 configure-coreutils
lisa 4 2 2 64 87 95 3 0.8 1,679 t4014-format-patch.sh
lisa 8 2 4 26 300 277 4 0.6 1,733 functions
lisa 7 NA NA 43 295 277 5 0.7 2,029 configure-helper.sh
lisa 7 2 5 38 438 390 8 1.1 2,512 abuild
lisa 6 2 4 62 325 338 5 0.9 2,698 Build.sh
lisa 5 2 2 79 108 110 3 0.5 3,123 t9300-fast-import.sh
lisa 17 NA NA 122 940 842 12 0.7 5,160 test-cmd-util.sh
lisa 24 5 12 141 1,089 976 13 0.5 9,661 ltmain.sh
lisa 35 10 25 319 2,446 2,105 27 0.8 20,489 configure
lisa 89 22 63 998 6,860 6,517 74 0.8 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 115.8 479.7 284.6 11.0 7.2 7.8 193.0 1,679 t4014-format-patch.sh
flanders 134.3 393.9 176.8 38.1 2.1 2.6 123.8 1,733 functions
flanders 100.0 NA NA 25.8 2.1 2.8 129.2 2,029 configure-helper.sh
flanders 125.0 405.2 168.6 39.4 1.8 2.4 117.4 2,512 abuild
flanders 158.7 562.1 259.4 18.0 2.6 3.7 164.5 2,698 Build.sh
flanders 157.7 892.3 416.4 16.0 10.3 11.9 278.8 3,123 t9300-fast-import.sh
flanders 113.7 NA NA 24.6 1.8 1.8 140.2 5,160 test-cmd-util.sh
flanders 192.1 894.5 291.0 40.0 2.9 3.3 217.1 9,661 ltmain.sh
flanders 216.1 1,113.5 387.3 34.7 2.9 3.1 236.3 20,489 configure
flanders 314.9 1,714.5 494.5 35.2 2.5 3.9 296.9 69,779 configure-coreutils
lisa 441.8 1,119.3 763.2 26.4 19.4 17.7 579.0 1,679 t4014-format-patch.sh
lisa 228.0 962.8 495.1 68.0 5.8 6.3 385.1 1,733 functions
lisa 302.8 NA NA 47.3 6.9 7.3 441.1 2,029 configure-helper.sh
lisa 374.9 1,196.2 465.2 66.6 5.7 6.4 330.5 2,512 abuild
lisa 490.5 1,349.0 674.5 43.6 8.3 8.0 550.6 2,698 Build.sh
lisa 600.6 1,837.1 1,357.8 39.7 28.8 28.4 1,156.7 3,123 t9300-fast-import.sh
lisa 305.3 NA NA 42.3 5.5 6.1 441.0 5,160 test-cmd-util.sh
lisa 409.4 1,789.1 779.1 68.5 8.9 9.9 766.7 9,661 ltmain.sh
lisa 583.7 1,970.1 822.9 64.3 8.4 9.7 758.9 20,489 configure
lisa 781.4 3,157.4 1,109.4 69.9 10.2 10.7 940.4 69,779 configure-coreutils