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,163.3 2,520.9
mksh 111,674 439.8 909.4
oil-native 118,863 224.9 700.0
bash 118,863 249.0 605.5
zsh 118,863 29.4 63.9
osh-cpython 118,863 2.7 9.7
osh-ovm 118,863 2.7 9.1

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.5 25.2 1,679 t4014-format-patch.sh
flanders 15.2 28.2 1,733 functions
lisa 15.1 28.2 1,733 functions
flanders 15.7 28.6 2,029 configure-helper.sh
lisa 15.8 28.6 2,029 configure-helper.sh
flanders 17.3 30.2 2,512 abuild
lisa 17.5 30.3 2,512 abuild
flanders 16.0 28.9 2,698 Build.sh
lisa 16.1 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.0 38.6 5,160 test-cmd-util.sh
lisa 25.9 38.6 5,160 test-cmd-util.sh
flanders 27.7 40.4 9,661 ltmain.sh
lisa 27.7 40.4 9,661 ltmain.sh
flanders 47.6 60.5 20,489 configure
lisa 47.5 60.5 20,489 configure
flanders 109.7 122.6 69,779 configure-coreutils
lisa 109.8 122.6 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-c5406c2f
osh-ovm osh-77623494
oil-native osh_eval.opt.stripped-3424c8c1
host label host id
flanders flanders-cc016cb1
lisa lisa-cc016cb1

Raw Data

filename
flanders.2020-08-09__01-25-22.times.csv
lisa.2020-08-09__01-28-18.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 166 322 280 9 0.8 1,679 t4014-format-patch.sh
flanders 12 4 9 50 1,076 886 19 1.5 1,733 functions
flanders 17 NA NA 87 1,163 919 16 1.0 2,029 configure-helper.sh
flanders 21 6 13 68 1,441 1,384 23 1.1 2,512 abuild
flanders 18 4 11 153 1,048 1,315 17 1.0 2,698 Build.sh
flanders 14 4 7 201 320 433 10 0.7 3,123 t9300-fast-import.sh
flanders 44 NA NA 226 3,542 3,595 40 0.9 5,160 test-cmd-util.sh
flanders 48 15 26 262 3,808 3,561 46 1.0 9,661 ltmain.sh
flanders 86 22 51 637 8,376 7,584 94 1.1 20,489 configure
flanders 207 38 130 2,197 22,233 24,132 254 1.2 69,779 configure-coreutils
lisa 4 1 3 70 90 102 3 0.8 1,679 t4014-format-patch.sh
lisa 4 2 3 23 291 293 4 1.0 1,733 functions
lisa 6 NA NA 41 302 283 5 0.9 2,029 configure-helper.sh
lisa 6 2 5 36 446 421 6 1.0 2,512 abuild
lisa 6 2 4 67 317 311 6 0.9 2,698 Build.sh
lisa 5 1 2 69 99 100 3 0.6 3,123 t9300-fast-import.sh
lisa 18 NA NA 120 967 854 12 0.7 5,160 test-cmd-util.sh
lisa 20 4 15 134 1,081 1,001 15 0.7 9,661 ltmain.sh
lisa 41 10 24 315 2,403 2,167 29 0.7 20,489 configure
lisa 87 21 68 985 7,090 6,663 87 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 149.9 508.8 262.3 10.1 5.2 6.0 182.5 1,679 t4014-format-patch.sh
flanders 140.9 456.1 188.4 34.7 1.6 2.0 92.2 1,733 functions
flanders 120.8 NA NA 23.3 1.7 2.2 124.5 2,029 configure-helper.sh
flanders 120.8 392.5 196.2 36.7 1.7 1.8 107.8 2,512 abuild
flanders 151.6 642.4 247.5 17.6 2.6 2.1 156.9 2,698 Build.sh
flanders 223.1 761.7 427.8 15.5 9.7 7.2 322.0 3,123 t9300-fast-import.sh
flanders 118.3 NA NA 22.8 1.5 1.4 129.6 5,160 test-cmd-util.sh
flanders 200.4 652.8 364.6 36.8 2.5 2.7 209.1 9,661 ltmain.sh
flanders 238.5 948.6 401.0 32.2 2.4 2.7 218.2 20,489 configure
flanders 337.6 1,846.0 538.0 31.8 3.1 2.9 274.5 69,779 configure-coreutils
lisa 466.4 1,291.5 645.8 24.2 18.7 16.4 621.9 1,679 t4014-format-patch.sh
lisa 412.6 753.5 525.2 76.0 6.0 5.9 412.6 1,733 functions
lisa 349.8 NA NA 49.1 6.7 7.2 390.2 2,029 configure-helper.sh
lisa 405.2 1,196.2 534.5 68.8 5.6 6.0 392.5 2,512 abuild
lisa 465.2 1,498.9 729.2 40.1 8.5 8.7 490.5 2,698 Build.sh
lisa 589.2 2,230.7 1,419.5 45.5 31.4 31.3 1,041.0 3,123 t9300-fast-import.sh
lisa 289.9 NA NA 43.1 5.3 6.0 433.6 5,160 test-cmd-util.sh
lisa 480.6 2,146.9 657.2 72.3 8.9 9.6 652.8 9,661 ltmain.sh
lisa 503.4 2,090.7 857.3 65.0 8.5 9.5 699.3 20,489 configure
lisa 803.9 3,307.1 1,030.7 70.9 9.8 10.5 803.9 69,779 configure-coreutils