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,128.0 2,573.1
mksh 111,674 405.9 961.9
osh-native 118,863 309.9 868.9
bash 118,863 230.3 614.0
zsh 118,863 28.3 97.6
osh-cpython 118,863 2.9 11.4
osh-ovm 118,863 3.1 10.6

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.8 23.6 1,679 t4014-format-patch.sh
lisa 10.8 23.6 1,679 t4014-format-patch.sh
flanders 13.8 26.5 1,733 functions
lisa 13.6 26.5 1,733 functions
flanders 14.1 26.9 2,029 configure-helper.sh
lisa 13.9 26.9 2,029 configure-helper.sh
flanders 16.0 28.7 2,512 abuild
lisa 15.6 28.5 2,512 abuild
flanders 14.4 27.3 2,698 Build.sh
lisa 14.3 27.3 2,698 Build.sh
flanders 11.3 24.0 3,123 t9300-fast-import.sh
lisa 11.4 24.0 3,123 t9300-fast-import.sh
flanders 24.4 36.9 5,160 test-cmd-util.sh
lisa 24.2 36.9 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.7 58.8 20,489 configure
flanders 107.5 120.4 69,779 configure-coreutils
lisa 107.4 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-f62e9ee4
osh-ovm osh-893a4b2d
osh-native osh_parse.opt.stripped-7a5482cb
host label host id
flanders flanders-f94966d0
lisa lisa-b43270f9

Raw Data

filename
flanders.2019-12-18__21-51-48.times.csv
lisa.2019-12-18__21-46-44.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 16 4 6 164 329 225 6 0.4 1,679 t4014-format-patch.sh
flanders 18 5 11 48 1,122 709 12 0.7 1,733 functions
flanders 18 NA NA 86 1,185 968 16 0.9 2,029 configure-helper.sh
flanders 17 7 16 66 1,472 1,342 19 1.1 2,512 abuild
flanders 18 5 10 161 1,048 990 14 0.7 2,698 Build.sh
flanders 18 4 6 199 325 337 8 0.4 3,123 t9300-fast-import.sh
flanders 43 NA NA 225 2,872 2,555 31 0.7 5,160 test-cmd-util.sh
flanders 52 13 30 263 3,150 3,166 35 0.7 9,661 ltmain.sh
flanders 92 21 53 699 6,548 8,949 65 0.7 20,489 configure
flanders 224 41 142 2,281 20,703 22,416 177 0.8 69,779 configure-coreutils
lisa 3 1 2 56 77 84 3 0.8 1,679 t4014-format-patch.sh
lisa 4 2 3 15 242 250 4 0.9 1,733 functions
lisa 6 NA NA 29 272 257 4 0.8 2,029 configure-helper.sh
lisa 7 2 6 21 374 349 5 0.7 2,512 abuild
lisa 5 2 4 45 275 255 5 1.0 2,698 Build.sh
lisa 5 1 3 55 88 101 2 0.5 3,123 t9300-fast-import.sh
lisa 16 NA NA 71 820 758 11 0.7 5,160 test-cmd-util.sh
lisa 21 4 12 88 979 854 13 0.6 9,661 ltmain.sh
lisa 37 9 24 196 2,086 1,945 26 0.7 20,489 configure
lisa 89 22 62 642 6,037 5,570 65 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 106.9 453.8 275.2 10.3 5.1 7.4 258.3 1,679 t4014-format-patch.sh
flanders 99.0 353.7 156.1 36.2 1.5 2.4 140.9 1,733 functions
flanders 114.0 NA NA 23.5 1.7 2.1 128.4 2,029 configure-helper.sh
flanders 148.6 380.6 160.0 38.2 1.7 1.9 129.5 2,512 abuild
flanders 145.8 586.5 269.8 16.7 2.6 2.7 196.9 2,698 Build.sh
flanders 169.7 743.6 495.7 15.7 9.6 9.3 390.4 3,123 t9300-fast-import.sh
flanders 120.0 NA NA 22.9 1.8 2.0 165.4 5,160 test-cmd-util.sh
flanders 186.9 748.9 318.8 36.7 3.1 3.1 276.0 9,661 ltmain.sh
flanders 222.2 961.9 383.7 29.3 3.1 2.3 316.7 20,489 configure
flanders 311.0 1,710.3 490.7 30.6 3.4 3.1 394.5 69,779 configure-coreutils
lisa 493.8 1,399.2 799.5 30.1 21.8 20.0 621.9 1,679 t4014-format-patch.sh
lisa 422.7 1,083.1 509.7 114.8 7.2 6.9 468.4 1,733 functions
lisa 349.8 NA NA 70.9 7.5 7.9 450.9 2,029 configure-helper.sh
lisa 358.9 1,256.0 405.2 120.8 6.7 7.2 523.3 2,512 abuild
lisa 539.6 1,498.9 642.4 60.1 9.8 10.6 539.6 2,698 Build.sh
lisa 624.6 2,230.7 1,201.2 56.5 35.5 31.0 1,357.8 3,123 t9300-fast-import.sh
lisa 318.5 NA NA 72.8 6.3 6.8 473.4 5,160 test-cmd-util.sh
lisa 462.2 2,146.9 811.8 110.4 9.9 11.3 766.7 9,661 ltmain.sh
lisa 549.3 2,276.6 864.5 104.4 9.8 10.5 797.2 20,489 configure
lisa 784.9 3,186.3 1,125.5 108.6 11.6 12.5 1,080.2 69,779 configure-coreutils