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,035.9 2,532.3
mksh 111,674 332.8 982.2
oil-native 118,863 257.5 760.5
bash 118,863 189.7 635.6
zsh 118,863 26.7 66.3
osh-cpython 118,863 2.8 10.5
osh-ovm 118,863 2.5 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.3 25.2 1,679 t4014-format-patch.sh
lisa 12.6 25.2 1,679 t4014-format-patch.sh
flanders 15.3 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.5 28.6 2,029 configure-helper.sh
flanders 17.4 30.2 2,512 abuild
lisa 17.3 30.3 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.7 3,123 t9300-fast-import.sh
lisa 12.8 25.8 3,123 t9300-fast-import.sh
flanders 26.1 38.6 5,160 test-cmd-util.sh
lisa 25.9 38.6 5,160 test-cmd-util.sh
flanders 27.8 40.4 9,661 ltmain.sh
lisa 27.7 40.4 9,661 ltmain.sh
flanders 47.8 60.5 20,489 configure
lisa 47.5 60.5 20,489 configure
flanders 109.7 122.6 69,779 configure-coreutils
lisa 109.7 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-4d8f5a48
osh-ovm osh-37f4cbc2
oil-native osh_eval.opt.stripped-632bd162
host label host id
flanders flanders-2cc9f781
lisa lisa-88603626

Raw Data

filename
flanders.2020-07-18__02-13-54.times.csv
lisa.2020-07-18__01-22-03.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 171 359 280 9 0.8 1,679 t4014-format-patch.sh
flanders 18 6 11 50 1,117 878 15 0.8 1,733 functions
flanders 24 NA NA 91 1,181 932 17 0.7 2,029 configure-helper.sh
flanders 23 6 18 75 1,649 1,261 20 0.9 2,512 abuild
flanders 21 6 15 157 1,060 855 16 0.8 2,698 Build.sh
flanders 19 4 8 201 319 279 8 0.4 3,123 t9300-fast-import.sh
flanders 52 NA NA 252 3,389 2,563 37 0.7 5,160 test-cmd-util.sh
flanders 60 14 34 292 4,022 3,270 40 0.7 9,661 ltmain.sh
flanders 114 22 67 706 8,477 8,535 79 0.7 20,489 configure
flanders 283 46 178 2,462 26,713 23,451 220 0.8 69,779 configure-coreutils
lisa 4 2 2 62 104 88 3 0.7 1,679 t4014-format-patch.sh
lisa 4 2 4 22 268 251 4 1.0 1,733 functions
lisa 8 NA NA 41 312 295 6 0.7 2,029 configure-helper.sh
lisa 6 2 5 30 464 370 7 1.3 2,512 abuild
lisa 7 2 4 62 329 300 5 0.8 2,698 Build.sh
lisa 5 1 3 73 92 103 3 0.7 3,123 t9300-fast-import.sh
lisa 16 NA NA 114 948 870 12 0.7 5,160 test-cmd-util.sh
lisa 19 5 12 135 1,052 914 14 0.7 9,661 ltmain.sh
lisa 36 8 24 313 2,225 1,993 30 0.8 20,489 configure
lisa 83 22 59 942 6,526 6,124 72 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 134.3 419.8 258.3 9.8 4.7 6.0 178.6 1,679 t4014-format-patch.sh
flanders 96.3 298.8 159.0 34.9 1.6 2.0 116.3 1,733 functions
flanders 86.0 NA NA 22.2 1.7 2.2 122.2 2,029 configure-helper.sh
flanders 111.2 405.2 141.1 33.4 1.5 2.0 123.1 2,512 abuild
flanders 131.0 457.3 177.5 17.2 2.5 3.2 168.6 2,698 Build.sh
flanders 161.8 743.6 416.4 15.6 9.8 11.2 367.4 3,123 t9300-fast-import.sh
flanders 98.5 NA NA 20.4 1.5 2.0 141.0 5,160 test-cmd-util.sh
flanders 159.7 680.4 287.5 33.0 2.4 3.0 240.9 9,661 ltmain.sh
flanders 180.2 944.2 307.6 29.0 2.4 2.4 258.4 20,489 configure
flanders 246.2 1,523.6 393.1 28.3 2.6 3.0 317.5 69,779 configure-coreutils
lisa 441.8 839.5 730.0 27.0 16.2 19.1 645.8 1,679 t4014-format-patch.sh
lisa 403.0 962.8 422.7 79.9 6.5 6.9 412.6 1,733 functions
lisa 267.0 NA NA 49.2 6.5 6.9 368.9 2,029 configure-helper.sh
lisa 425.8 1,256.0 483.1 82.4 5.4 6.8 339.5 2,512 abuild
lisa 408.8 1,420.0 729.2 43.8 8.2 9.0 509.1 2,698 Build.sh
lisa 650.6 2,230.7 1,076.9 42.8 33.9 30.3 946.4 3,123 t9300-fast-import.sh
lisa 324.5 NA NA 45.4 5.4 5.9 444.8 5,160 test-cmd-util.sh
lisa 511.2 2,100.2 779.1 71.4 9.2 10.6 690.1 9,661 ltmain.sh
lisa 566.0 2,498.7 846.7 65.5 9.2 10.3 676.2 20,489 configure
lisa 840.7 3,143.2 1,184.7 74.1 10.7 11.4 967.8 69,779 configure-coreutils