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,151.3 2,690.9
mksh 111,674 438.1 1,004.3
osh-native 118,863 275.6 883.7
bash 118,863 243.1 640.8
zsh 118,863 32.2 68.5
osh-cpython 118,863 2.9 11.1
osh-ovm 118,863 2.8 9.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 11.1 24.0 1,679 t4014-format-patch.sh
lisa 11.1 24.0 1,679 t4014-format-patch.sh
flanders 13.7 26.6 1,733 functions
lisa 13.6 26.7 1,733 functions
flanders 14.4 27.3 2,029 configure-helper.sh
lisa 14.5 27.3 2,029 configure-helper.sh
flanders 15.8 28.6 2,512 abuild
lisa 15.8 28.6 2,512 abuild
flanders 14.5 27.4 2,698 Build.sh
lisa 14.6 27.4 2,698 Build.sh
flanders 11.7 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.3 37.3 5,160 test-cmd-util.sh
flanders 26.1 39.1 9,661 ltmain.sh
lisa 26.4 39.1 9,661 ltmain.sh
flanders 46.0 58.9 20,489 configure
lisa 45.9 58.9 20,489 configure
flanders 108.0 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-20fd5f73
osh-ovm osh-5f2906ac
osh-native osh_parse.opt.stripped-fe0627f5
host label host id
flanders flanders-f4f507c8
lisa lisa-0616a365

Raw Data

filename
flanders.2020-02-17__15-40-50.times.csv
lisa.2020-02-17__15-38-21.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 4 6 160 301 199 8 0.7 1,679 t4014-format-patch.sh
flanders 14 5 10 42 1,059 625 17 1.2 1,733 functions
flanders 20 NA NA 77 1,138 736 17 0.8 2,029 configure-helper.sh
flanders 18 6 17 63 1,476 1,024 19 1.1 2,512 abuild
flanders 19 6 10 150 1,020 745 15 0.8 2,698 Build.sh
flanders 20 3 7 202 304 249 9 0.4 3,123 t9300-fast-import.sh
flanders 43 NA NA 209 3,331 2,583 34 0.8 5,160 test-cmd-util.sh
flanders 49 14 28 240 3,832 3,522 39 0.8 9,661 ltmain.sh
flanders 86 20 53 579 6,911 8,067 75 0.9 20,489 configure
flanders 208 39 124 1,965 23,711 23,204 200 1.0 69,779 configure-coreutils
lisa 4 1 2 60 96 84 3 0.7 1,679 t4014-format-patch.sh
lisa 5 2 3 22 267 257 4 0.7 1,733 functions
lisa 7 NA NA 39 290 258 4 0.6 2,029 configure-helper.sh
lisa 6 2 4 32 382 360 6 1.1 2,512 abuild
lisa 5 2 4 58 295 273 4 0.9 2,698 Build.sh
lisa 6 2 2 70 91 98 3 0.6 3,123 t9300-fast-import.sh
lisa 18 NA NA 113 864 802 10 0.5 5,160 test-cmd-util.sh
lisa 21 5 13 131 975 913 12 0.6 9,661 ltmain.sh
lisa 33 9 25 300 2,309 1,955 25 0.7 20,489 configure
lisa 81 19 57 909 6,399 5,690 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 151.3 419.8 305.3 10.5 5.6 8.5 212.5 1,679 t4014-format-patch.sh
flanders 126.5 320.9 176.8 41.8 1.6 2.8 104.4 1,733 functions
flanders 100.0 NA NA 26.4 1.8 2.8 120.8 2,029 configure-helper.sh
flanders 141.1 456.7 144.4 39.9 1.7 2.5 131.5 2,512 abuild
flanders 139.1 465.2 269.8 17.9 2.6 3.6 182.3 2,698 Build.sh
flanders 156.9 946.4 427.8 15.5 10.3 12.6 350.9 3,123 t9300-fast-import.sh
flanders 118.9 NA NA 24.7 1.5 2.0 151.3 5,160 test-cmd-util.sh
flanders 196.4 690.1 350.0 40.3 2.5 2.7 250.3 9,661 ltmain.sh
flanders 237.7 1,024.5 388.0 35.4 3.0 2.5 274.7 20,489 configure
flanders 335.5 1,789.2 560.5 35.5 2.9 3.0 349.1 69,779 configure-coreutils
lisa 409.5 1,399.2 839.5 27.8 17.4 20.0 621.9 1,679 t4014-format-patch.sh
lisa 333.3 962.8 559.0 77.0 6.5 6.7 456.1 1,733 functions
lisa 307.4 NA NA 52.6 7.0 7.9 507.2 2,029 configure-helper.sh
lisa 448.6 1,256.0 558.2 77.8 6.6 7.0 398.7 2,512 abuild
lisa 550.6 1,498.9 691.8 46.2 9.2 9.9 599.6 2,698 Build.sh
lisa 547.9 1,735.0 1,487.1 44.7 34.3 32.0 946.4 3,123 t9300-fast-import.sh
lisa 285.1 NA NA 45.8 6.0 6.4 543.2 5,160 test-cmd-util.sh
lisa 462.2 2,100.2 731.9 74.0 9.9 10.6 798.4 9,661 ltmain.sh
lisa 619.0 2,251.5 816.3 68.2 8.9 10.5 826.2 20,489 configure
lisa 858.3 3,634.3 1,217.8 76.7 10.9 12.3 1,098.9 69,779 configure-coreutils