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,180.5 2,567.2
mksh 111,674 427.9 980.5
oil-native 118,863 281.1 833.5
bash 118,863 245.3 648.5
zsh 118,863 29.6 67.8
osh-cpython 118,863 3.1 10.8
osh-ovm 118,863 2.9 9.8

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.5 25.1 1,679 t4014-format-patch.sh
lisa 12.2 25.1 1,679 t4014-format-patch.sh
flanders 15.0 27.8 1,733 functions
lisa 15.0 27.8 1,733 functions
flanders 15.7 28.2 2,029 configure-helper.sh
lisa 15.4 28.2 2,029 configure-helper.sh
flanders 17.1 29.9 2,512 abuild
lisa 16.9 30.0 2,512 abuild
flanders 15.7 28.6 2,698 Build.sh
lisa 15.8 28.6 2,698 Build.sh
flanders 12.8 25.6 3,123 t9300-fast-import.sh
lisa 12.4 25.5 3,123 t9300-fast-import.sh
flanders 25.7 38.5 5,160 test-cmd-util.sh
lisa 25.7 38.5 5,160 test-cmd-util.sh
flanders 27.5 40.0 9,661 ltmain.sh
lisa 27.2 40.0 9,661 ltmain.sh
flanders 47.2 60.1 20,489 configure
lisa 47.1 60.1 20,489 configure
flanders 109.3 122.0 69,779 configure-coreutils
lisa 109.4 122.0 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-c1645e20
osh-ovm osh-ffdc6c0b
oil-native osh_eval.opt.stripped-1432de06
host label host id
flanders flanders-88603626
lisa lisa-6db4bf9a

Raw Data

filename
flanders.2020-05-21__10-48-34.times.csv
lisa.2020-05-21__12-07-59.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 12 4 6 163 272 277 7 0.6 1,679 t4014-format-patch.sh
flanders 16 4 9 50 892 861 17 1.1 1,733 functions
flanders 22 NA NA 84 875 906 16 0.7 2,029 configure-helper.sh
flanders 16 7 17 71 1,272 1,291 18 1.1 2,512 abuild
flanders 14 4 14 158 914 846 14 1.0 2,698 Build.sh
flanders 19 3 7 206 285 280 9 0.5 3,123 t9300-fast-import.sh
flanders 42 NA NA 229 2,486 2,478 34 0.8 5,160 test-cmd-util.sh
flanders 49 14 30 264 2,963 3,139 37 0.8 9,661 ltmain.sh
flanders 85 19 50 628 7,949 6,309 71 0.8 20,489 configure
flanders 208 39 128 2,162 23,619 21,864 200 1.0 69,779 configure-coreutils
lisa 3 1 2 60 84 92 2 0.7 1,679 t4014-format-patch.sh
lisa 5 2 4 25 264 244 4 0.9 1,733 functions
lisa 7 NA NA 40 307 275 5 0.7 2,029 configure-helper.sh
lisa 6 2 4 36 409 374 5 0.9 2,512 abuild
lisa 6 2 4 62 297 327 5 0.9 2,698 Build.sh
lisa 5 2 2 71 92 97 2 0.5 3,123 t9300-fast-import.sh
lisa 15 NA NA 109 913 798 11 0.8 5,160 test-cmd-util.sh
lisa 18 4 12 128 1,021 891 15 0.9 9,661 ltmain.sh
lisa 39 8 25 300 2,206 1,947 24 0.6 20,489 configure
lisa 80 22 60 921 6,535 5,998 68 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 135.4 409.5 289.5 10.3 6.2 6.1 236.5 1,679 t4014-format-patch.sh
flanders 110.4 456.1 190.4 34.4 1.9 2.0 103.2 1,733 functions
flanders 90.2 NA NA 24.0 2.3 2.2 130.9 2,029 configure-helper.sh
flanders 154.1 374.9 146.0 35.2 2.0 1.9 140.3 2,512 abuild
flanders 192.7 642.4 194.1 17.1 3.0 3.2 194.1 2,698 Build.sh
flanders 162.7 946.4 459.3 15.2 10.9 11.1 354.9 3,123 t9300-fast-import.sh
flanders 121.7 NA NA 22.6 2.1 2.1 149.6 5,160 test-cmd-util.sh
flanders 195.6 670.9 322.0 36.5 3.3 3.1 259.0 9,661 ltmain.sh
flanders 241.3 1,056.1 410.6 32.6 2.6 3.2 287.0 20,489 configure
flanders 335.8 1,803.1 543.9 32.3 3.0 3.2 349.6 69,779 configure-coreutils
lisa 508.8 1,199.3 839.5 27.8 20.0 18.3 763.2 1,679 t4014-format-patch.sh
lisa 361.0 1,019.4 481.4 70.4 6.6 7.1 403.0 1,733 functions
lisa 298.4 NA NA 50.1 6.6 7.4 441.1 2,029 configure-helper.sh
lisa 440.7 1,046.7 558.2 70.2 6.1 6.7 474.0 2,512 abuild
lisa 449.7 1,587.1 627.4 43.2 9.1 8.2 518.8 2,698 Build.sh
lisa 612.4 1,951.9 1,357.8 43.7 33.9 32.3 1,249.2 3,123 t9300-fast-import.sh
lisa 339.5 NA NA 47.4 5.7 6.5 452.6 5,160 test-cmd-util.sh
lisa 552.1 2,195.7 798.4 75.2 9.5 10.8 644.1 9,661 ltmain.sh
lisa 529.4 2,529.5 832.9 68.2 9.3 10.5 843.2 20,489 configure
lisa 870.1 3,143.2 1,153.4 75.7 10.7 11.6 1,029.2 69,779 configure-coreutils