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,119.0 2,371.0
mksh 111,674 358.5 961.0
oil-native 118,863 277.1 776.4
bash 118,863 189.3 556.7
zsh 118,863 26.0 61.4
osh-cpython 118,863 2.3 9.8
osh-ovm 118,863 2.6 9.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.6 24.5 1,679 t4014-format-patch.sh
lisa 11.9 24.5 1,679 t4014-format-patch.sh
flanders 14.5 27.3 1,733 functions
lisa 14.6 27.3 1,733 functions
flanders 15.1 27.9 2,029 configure-helper.sh
lisa 15.1 27.9 2,029 configure-helper.sh
flanders 16.6 29.4 2,512 abuild
lisa 16.4 29.3 2,512 abuild
flanders 15.3 28.3 2,698 Build.sh
lisa 15.5 28.3 2,698 Build.sh
flanders 12.1 25.1 3,123 t9300-fast-import.sh
lisa 12.3 25.1 3,123 t9300-fast-import.sh
flanders 25.5 38.0 5,160 test-cmd-util.sh
lisa 25.4 38.0 5,160 test-cmd-util.sh
flanders 26.9 39.7 9,661 ltmain.sh
lisa 26.9 39.7 9,661 ltmain.sh
flanders 47.0 59.8 20,489 configure
lisa 46.9 59.8 20,489 configure
flanders 109.0 121.8 69,779 configure-coreutils
lisa 108.7 121.8 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-0cd6bdb5
osh-ovm osh-72acd6fc
oil-native osh_eval.opt.stripped-08d4dd79
host label host id
flanders flanders-29b661ab
lisa lisa-46fb0378

Raw Data

filename
flanders.2020-03-23__14-22-25.times.csv
lisa.2020-03-23__14-17-54.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 16 4 6 175 337 281 9 0.5 1,679 t4014-format-patch.sh
flanders 14 4 13 52 1,078 875 14 1.0 1,733 functions
flanders 23 NA NA 94 1,138 1,268 14 0.6 2,029 configure-helper.sh
flanders 22 5 16 76 1,610 1,796 18 0.8 2,512 abuild
flanders 17 5 14 160 1,037 1,230 14 0.8 2,698 Build.sh
flanders 20 4 7 212 313 363 8 0.4 3,123 t9300-fast-import.sh
flanders 57 NA NA 257 3,279 3,362 32 0.6 5,160 test-cmd-util.sh
flanders 62 14 37 295 4,661 4,766 42 0.7 9,661 ltmain.sh
flanders 117 22 62 717 10,154 10,953 75 0.6 20,489 configure
flanders 280 41 156 2,537 22,950 27,446 204 0.7 69,779 configure-coreutils
lisa 4 1 2 69 84 91 2 0.6 1,679 t4014-format-patch.sh
lisa 6 2 4 24 284 271 4 0.7 1,733 functions
lisa 6 NA NA 44 306 292 4 0.7 2,029 configure-helper.sh
lisa 6 2 5 34 460 416 6 1.0 2,512 abuild
lisa 5 2 4 64 328 314 5 1.0 2,698 Build.sh
lisa 5 2 2 80 112 104 3 0.5 3,123 t9300-fast-import.sh
lisa 20 NA NA 119 982 887 11 0.5 5,160 test-cmd-util.sh
lisa 28 4 14 135 1,104 1,007 14 0.5 9,661 ltmain.sh
lisa 43 12 24 326 2,441 2,245 27 0.6 20,489 configure
lisa 89 22 62 1,042 7,151 6,478 77 0.9 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 105.6 430.5 270.8 9.6 5.0 6.0 195.2 1,679 t4014-format-patch.sh
flanders 121.2 385.1 134.3 33.5 1.6 2.0 123.8 1,733 functions
flanders 87.8 NA NA 21.6 1.8 1.6 146.0 2,029 configure-helper.sh
flanders 115.2 465.2 155.1 33.2 1.6 1.4 141.9 2,512 abuild
flanders 158.7 529.0 191.3 16.9 2.6 2.2 191.3 2,698 Build.sh
flanders 160.2 709.8 452.6 14.8 10.0 8.6 367.4 3,123 t9300-fast-import.sh
flanders 91.2 NA NA 20.1 1.6 1.5 159.8 5,160 test-cmd-util.sh
flanders 155.6 685.2 261.8 32.7 2.1 2.0 231.7 9,661 ltmain.sh
flanders 174.5 953.0 331.5 28.6 2.0 1.9 274.7 20,489 configure
flanders 249.1 1,706.1 445.9 27.5 3.0 2.5 342.9 69,779 configure-coreutils
lisa 381.6 1,199.3 839.5 24.5 20.0 18.5 671.6 1,679 t4014-format-patch.sh
lisa 298.8 1,019.4 444.4 71.9 6.1 6.4 403.0 1,733 functions
lisa 327.3 NA NA 46.6 6.6 6.9 450.9 2,029 configure-helper.sh
lisa 411.8 1,141.8 546.1 72.8 5.5 6.0 433.1 2,512 abuild
lisa 539.6 1,498.9 674.5 41.8 8.2 8.6 539.6 2,698 Build.sh
lisa 578.3 1,837.1 1,561.5 38.9 27.8 30.0 1,156.7 3,123 t9300-fast-import.sh
lisa 251.7 NA NA 43.4 5.3 5.8 482.2 5,160 test-cmd-util.sh
lisa 340.2 2,146.9 715.6 71.5 8.7 9.6 695.0 9,661 ltmain.sh
lisa 478.7 1,721.8 853.7 62.9 8.4 9.1 758.9 20,489 configure
lisa 784.9 3,186.3 1,121.8 67.0 9.8 10.8 909.8 69,779 configure-coreutils