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,219.1 2,381.1
mksh 111,674 432.7 897.7
oil-native 118,863 206.6 775.4
bash 118,863 249.1 606.1
zsh 118,863 30.7 64.7
osh-cpython 118,863 3.2 10.3
osh-ovm 118,863 2.7 9.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 12.4 25.2 1,679 t4014-format-patch.sh
lisa 12.6 25.2 1,679 t4014-format-patch.sh
flanders 15.2 27.9 1,733 functions
lisa 15.2 27.9 1,733 functions
flanders 15.7 28.6 2,029 configure-helper.sh
lisa 15.7 28.6 2,029 configure-helper.sh
flanders 17.4 30.2 2,512 abuild
lisa 17.2 30.2 2,512 abuild
flanders 16.1 28.9 2,698 Build.sh
lisa 16.0 28.9 2,698 Build.sh
flanders 13.0 25.6 3,123 t9300-fast-import.sh
lisa 12.9 25.6 3,123 t9300-fast-import.sh
flanders 26.1 38.6 5,160 test-cmd-util.sh
lisa 26.1 38.6 5,160 test-cmd-util.sh
flanders 27.5 40.4 9,661 ltmain.sh
lisa 27.7 40.4 9,661 ltmain.sh
flanders 47.3 60.4 20,489 configure
lisa 47.4 60.5 20,489 configure
flanders 109.4 122.4 69,779 configure-coreutils
lisa 109.5 122.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-e0b68aa1
osh-ovm osh-7351fded
oil-native osh_eval.opt.stripped-b569a5fc
host label host id
flanders flanders-88603626
lisa lisa-88603626

Raw Data

filename
flanders.2020-06-12__20-23-13.times.csv
lisa.2020-06-12__20-20-49.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 11 3 6 162 235 228 12 1.1 1,679 t4014-format-patch.sh
flanders 16 4 13 46 755 706 19 1.2 1,733 functions
flanders 18 NA NA 81 804 734 20 1.1 2,029 configure-helper.sh
flanders 17 5 16 65 1,150 1,312 22 1.3 2,512 abuild
flanders 15 4 10 161 830 958 19 1.3 2,698 Build.sh
flanders 16 4 7 202 279 319 10 0.6 3,123 t9300-fast-import.sh
flanders 46 NA NA 208 2,808 3,451 42 0.9 5,160 test-cmd-util.sh
flanders 51 12 26 241 4,006 3,978 52 1.0 9,661 ltmain.sh
flanders 83 22 51 585 7,575 7,396 102 1.2 20,489 configure
flanders 204 37 128 2,117 26,330 17,976 278 1.4 69,779 configure-coreutils
lisa 4 1 2 62 86 92 2 0.6 1,679 t4014-format-patch.sh
lisa 4 2 4 22 294 279 4 1.0 1,733 functions
lisa 6 NA NA 39 287 304 4 0.8 2,029 configure-helper.sh
lisa 6 2 4 34 421 381 5 0.9 2,512 abuild
lisa 6 2 4 62 302 302 4 0.7 2,698 Build.sh
lisa 5 2 3 73 94 103 3 0.7 3,123 t9300-fast-import.sh
lisa 18 NA NA 121 911 853 13 0.7 5,160 test-cmd-util.sh
lisa 22 7 13 140 1,101 988 13 0.6 9,661 ltmain.sh
lisa 41 8 23 310 2,301 2,103 24 0.6 20,489 configure
lisa 84 23 70 975 6,648 6,141 80 1.0 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 148.6 508.8 284.6 10.3 7.1 7.4 137.6 1,679 t4014-format-patch.sh
flanders 105.7 393.9 135.4 38.1 2.3 2.5 91.2 1,733 functions
flanders 114.6 NA NA 25.1 2.5 2.8 104.1 2,029 configure-helper.sh
flanders 149.5 546.1 155.1 38.8 2.2 1.9 115.8 2,512 abuild
flanders 181.1 627.4 257.0 16.7 3.3 2.8 141.3 2,698 Build.sh
flanders 195.2 726.3 446.1 15.5 11.2 9.8 309.2 3,123 t9300-fast-import.sh
flanders 111.9 NA NA 24.7 1.8 1.5 122.3 5,160 test-cmd-util.sh
flanders 189.8 840.1 368.7 40.1 2.4 2.4 186.1 9,661 ltmain.sh
flanders 246.6 914.7 401.7 35.0 2.7 2.8 200.5 20,489 configure
flanders 342.1 1,896.2 543.0 33.0 2.7 3.9 251.5 69,779 configure-coreutils
lisa 390.5 1,291.5 883.7 27.1 19.4 18.2 671.6 1,679 t4014-format-patch.sh
lisa 412.6 962.8 393.9 79.1 5.9 6.2 412.6 1,733 functions
lisa 362.3 NA NA 52.6 7.1 6.7 471.9 2,029 configure-helper.sh
lisa 433.1 1,256.0 558.2 75.0 6.0 6.6 483.1 2,512 abuild
lisa 421.6 1,420.0 627.4 43.2 8.9 8.9 599.6 2,698 Build.sh
lisa 664.5 1,735.0 1,115.4 43.0 33.3 30.4 1,007.4 3,123 t9300-fast-import.sh
lisa 285.1 NA NA 42.6 5.7 6.0 390.9 5,160 test-cmd-util.sh
lisa 447.3 1,420.7 748.9 69.0 8.8 9.8 760.7 9,661 ltmain.sh
lisa 496.1 2,498.7 879.4 66.1 8.9 9.7 868.2 20,489 configure
lisa 829.7 3,020.7 992.6 71.6 10.5 11.4 872.2 69,779 configure-coreutils