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,249.1 2,615.3
mksh 111,674 424.0 984.8
osh-native 118,863 281.2 837.7
bash 118,863 246.8 631.6
zsh 118,863 32.3 67.3
osh-cpython 118,863 3.6 11.9
osh-ovm 118,863 3.3 10.9

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 10.9 23.5 1,679 t4014-format-patch.sh
lisa 10.8 23.6 1,679 t4014-format-patch.sh
flanders 13.7 26.5 1,733 functions
lisa 13.5 26.5 1,733 functions
flanders 14.2 26.9 2,029 configure-helper.sh
lisa 14.0 26.9 2,029 configure-helper.sh
flanders 15.5 28.6 2,512 abuild
lisa 15.8 28.7 2,512 abuild
flanders 14.4 27.2 2,698 Build.sh
lisa 14.3 27.3 2,698 Build.sh
flanders 11.3 23.9 3,123 t9300-fast-import.sh
lisa 11.2 24.0 3,123 t9300-fast-import.sh
flanders 24.5 36.9 5,160 test-cmd-util.sh
lisa 24.4 37.2 5,160 test-cmd-util.sh
flanders 26.1 38.7 9,661 ltmain.sh
lisa 25.9 38.7 9,661 ltmain.sh
flanders 45.9 58.8 20,489 configure
lisa 45.8 58.8 20,489 configure
flanders 107.5 120.4 69,779 configure-coreutils
lisa 107.3 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-d24db1df
osh-ovm osh-c07d1c8b
osh-native osh_parse.opt.stripped-e0e1fe6a
host label host id
flanders flanders-0616a365
lisa lisa-0616a365

Raw Data

filename
flanders.2020-01-19__22-36-31.times.csv
lisa.2020-01-19__22-38-28.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 11 3 7 161 230 185 8 0.7 1,679 t4014-format-patch.sh
flanders 13 4 10 41 825 566 16 1.2 1,733 functions
flanders 20 NA NA 80 895 604 14 0.7 2,029 configure-helper.sh
flanders 17 5 17 65 1,301 921 20 1.2 2,512 abuild
flanders 19 6 10 147 868 702 17 0.9 2,698 Build.sh
flanders 18 3 8 193 256 235 9 0.5 3,123 t9300-fast-import.sh
flanders 44 NA NA 210 2,494 2,075 32 0.7 5,160 test-cmd-util.sh
flanders 48 12 30 242 2,625 2,874 39 0.8 9,661 ltmain.sh
flanders 83 22 53 582 5,898 7,633 76 0.9 20,489 configure
flanders 208 34 129 1,962 21,152 16,995 193 0.9 69,779 configure-coreutils
lisa 3 2 2 60 74 79 3 0.8 1,679 t4014-format-patch.sh
lisa 4 2 5 24 256 234 4 1.0 1,733 functions
lisa 6 NA NA 39 260 246 5 0.8 2,029 configure-helper.sh
lisa 7 2 5 34 356 334 5 0.8 2,512 abuild
lisa 5 2 4 57 264 247 6 1.2 2,698 Build.sh
lisa 5 1 3 75 87 87 4 0.7 3,123 t9300-fast-import.sh
lisa 16 NA NA 110 840 719 11 0.7 5,160 test-cmd-util.sh
lisa 18 5 11 127 939 815 14 0.8 9,661 ltmain.sh
lisa 33 8 26 296 2,066 1,802 25 0.8 20,489 configure
lisa 90 21 59 944 5,793 5,464 66 0.7 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 158.4 524.7 236.5 10.4 7.3 9.1 220.9 1,679 t4014-format-patch.sh
flanders 131.3 403.0 175.1 42.4 2.1 3.1 109.7 1,733 functions
flanders 99.5 NA NA 25.4 2.3 3.4 148.1 2,029 configure-helper.sh
flanders 150.4 512.7 151.3 38.6 1.9 2.7 126.9 2,512 abuild
flanders 144.3 449.7 269.8 18.3 3.1 3.8 160.6 2,698 Build.sh
flanders 171.6 975.9 400.4 16.2 12.2 13.3 343.2 3,123 t9300-fast-import.sh
flanders 116.0 NA NA 24.5 2.1 2.5 160.7 5,160 test-cmd-util.sh
flanders 199.6 811.8 326.4 39.9 3.7 3.4 247.7 9,661 ltmain.sh
flanders 246.3 953.0 385.9 35.2 3.5 2.7 269.9 20,489 configure
flanders 336.0 2,028.5 539.7 35.6 3.3 4.1 361.7 69,779 configure-coreutils
lisa 493.8 1,119.3 883.7 28.1 22.6 21.2 645.8 1,679 t4014-format-patch.sh
lisa 412.6 1,019.4 376.7 72.8 6.8 7.4 412.6 1,733 functions
lisa 322.1 NA NA 52.3 7.8 8.3 405.8 2,029 configure-helper.sh
lisa 380.6 1,322.1 492.5 74.3 7.1 7.5 492.5 2,512 abuild
lisa 509.1 1,420.0 770.9 47.3 10.2 10.9 428.3 2,698 Build.sh
lisa 578.3 2,402.3 1,201.2 41.5 36.0 35.9 821.8 3,123 t9300-fast-import.sh
lisa 318.5 NA NA 46.7 6.1 7.2 464.9 5,160 test-cmd-util.sh
lisa 533.8 1,894.3 855.0 75.9 10.3 11.8 705.2 9,661 ltmain.sh
lisa 628.5 2,561.1 794.1 69.2 9.9 11.4 832.9 20,489 configure
lisa 774.5 3,276.0 1,190.8 73.9 12.0 12.8 1,065.3 69,779 configure-coreutils