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,280.7 2,515.2
mksh 111,674 433.3 956.1
oil-native 118,863 276.0 846.0
bash 118,863 250.4 605.8
zsh 118,863 30.6 63.5
osh-cpython 118,863 3.7 10.2
osh-ovm 118,863 2.5 9.3

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 11.9 24.7 1,679 t4014-format-patch.sh
lisa 12.1 24.8 1,679 t4014-format-patch.sh
flanders 14.7 27.4 1,733 functions
lisa 14.8 27.6 1,733 functions
flanders 15.3 28.1 2,029 configure-helper.sh
lisa 15.1 28.1 2,029 configure-helper.sh
flanders 16.8 29.4 2,512 abuild
lisa 16.8 29.7 2,512 abuild
flanders 15.6 28.5 2,698 Build.sh
lisa 15.6 28.5 2,698 Build.sh
flanders 12.5 25.1 3,123 t9300-fast-import.sh
lisa 12.4 25.1 3,123 t9300-fast-import.sh
flanders 25.5 38.1 5,160 test-cmd-util.sh
lisa 25.6 38.1 5,160 test-cmd-util.sh
flanders 27.1 39.9 9,661 ltmain.sh
lisa 27.1 39.9 9,661 ltmain.sh
flanders 47.0 60.0 20,489 configure
lisa 47.1 60.0 20,489 configure
flanders 109.1 122.1 69,779 configure-coreutils
lisa 109.1 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-3ab09724
osh-ovm osh-8696b56b
oil-native osh_eval.opt.stripped-f19f3ad0
host label host id
flanders flanders-6db4bf9a
lisa lisa-6db4bf9a

Raw Data

filename
flanders.2020-04-17__12-11-10.times.csv
lisa.2020-04-17__11-25-55.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 14 3 6 160 241 220 9 0.6 1,679 t4014-format-patch.sh
flanders 12 4 11 47 1,062 684 16 1.4 1,733 functions
flanders 20 NA NA 80 1,180 658 15 0.8 2,029 configure-helper.sh
flanders 21 5 12 64 1,655 940 21 1.0 2,512 abuild
flanders 14 4 13 147 1,036 687 16 1.1 2,698 Build.sh
flanders 20 4 8 200 318 229 9 0.5 3,123 t9300-fast-import.sh
flanders 44 NA NA 210 3,206 2,096 38 0.9 5,160 test-cmd-util.sh
flanders 45 11 29 254 4,011 2,532 40 0.9 9,661 ltmain.sh
flanders 82 17 51 632 8,521 6,514 71 0.9 20,489 configure
flanders 203 38 127 2,089 26,117 17,456 196 1.0 69,779 configure-coreutils
lisa 4 1 2 62 83 92 2 0.6 1,679 t4014-format-patch.sh
lisa 5 2 4 23 296 259 4 0.8 1,733 functions
lisa 10 NA NA 41 324 291 4 0.4 2,029 configure-helper.sh
lisa 6 2 5 36 424 406 6 0.9 2,512 abuild
lisa 5 2 4 67 325 291 4 0.9 2,698 Build.sh
lisa 5 2 2 82 101 104 2 0.4 3,123 t9300-fast-import.sh
lisa 17 NA NA 113 928 870 11 0.6 5,160 test-cmd-util.sh
lisa 18 5 13 130 1,088 997 14 0.7 9,661 ltmain.sh
lisa 37 9 25 312 2,340 2,140 27 0.7 20,489 configure
lisa 88 22 62 1,005 6,880 6,234 67 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 123.5 524.7 289.5 10.5 7.0 7.6 195.2 1,679 t4014-format-patch.sh
flanders 143.2 403.0 163.5 37.0 1.6 2.5 105.0 1,733 functions
flanders 100.9 NA NA 25.4 1.7 3.1 134.4 2,029 configure-helper.sh
flanders 119.6 512.7 202.6 39.2 1.5 2.7 117.9 2,512 abuild
flanders 188.7 642.4 201.3 18.3 2.6 3.9 166.5 2,698 Build.sh
flanders 160.2 800.8 385.6 15.6 9.8 13.6 350.9 3,123 t9300-fast-import.sh
flanders 117.3 NA NA 24.5 1.6 2.5 137.2 5,160 test-cmd-util.sh
flanders 215.6 847.5 334.3 38.1 2.4 3.8 244.0 9,661 ltmain.sh
flanders 248.7 1,205.2 399.4 32.4 2.4 3.1 288.2 20,489 configure
flanders 343.9 1,821.9 548.6 33.4 2.7 4.0 356.4 69,779 configure-coreutils
lisa 419.8 1,199.3 799.5 27.1 20.2 18.3 730.0 1,679 t4014-format-patch.sh
lisa 346.6 1,019.4 495.1 76.0 5.9 6.7 444.4 1,733 functions
lisa 197.0 NA NA 49.1 6.3 7.0 520.3 2,029 configure-helper.sh
lisa 398.7 1,141.8 474.0 69.6 5.9 6.2 456.7 2,512 abuild
lisa 529.0 1,420.0 749.4 40.4 8.3 9.3 599.6 2,698 Build.sh
lisa 578.3 1,951.9 1,419.5 38.2 30.8 30.1 1,357.8 3,123 t9300-fast-import.sh
lisa 303.5 NA NA 45.5 5.6 5.9 482.2 5,160 test-cmd-util.sh
lisa 522.2 2,100.2 743.2 74.1 8.9 9.7 710.4 9,661 ltmain.sh
lisa 553.8 2,355.1 819.6 65.6 8.8 9.6 756.1 20,489 configure
lisa 796.6 3,129.1 1,123.7 69.4 10.1 11.2 1,046.2 69,779 configure-coreutils