OSH Compute Performance

Running time and memory usage of programs that test data structures (as opposed to I/O).

Memory usage is measured in MB (powers of 10), not MiB (powers of 2).

Source code: oil/benchmarks/compute

hello (minimal startup)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders _ _ bash 2.5 0.0 2.2 3.0
flanders _ _ osh_eval.opt.stripped 3.2 0.0 3.2 4.1
flanders _ _ dash 1.2 1.2 0.0 1.6
flanders _ _ python 21.2 15.4 3.9 6.8
lenny _ _ dash 0.4 0.4 0.0 1.7
lenny _ _ bash 1.3 0.8 0.0 3.4
lenny _ _ osh_eval.opt.stripped 1.1 1.0 0.0 4.1
lenny _ _ python 6.2 6.0 0.0 7.1

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders 200 44 python 22.9 14.0 7.0 6.9
flanders 200 44 dash 55.3 55.3 0.0 1.7
flanders 200 44 bash 245.7 241.6 4.0 3.1
flanders 200 44 osh_eval.opt.stripped 297.1 249.5 47.5 99.7
lenny 200 44 python 7.0 0.0 6.7 7.3
lenny 200 44 dash 17.3 17.2 0.0 1.8
lenny 200 44 bash 61.8 61.7 0.0 3.4
lenny 200 44 osh_eval.opt.stripped 87.5 70.7 16.6 99.8

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders 10 configure python 44.8 30.6 15.2 7.1
flanders 10 configure osh_eval.opt.stripped 229.8 191.0 41.3 64.7
flanders 10 configure bash 299.8 285.9 20.0 3.4
lenny 10 configure python 14.8 6.0 9.7 7.5
lenny 10 configure osh_eval.opt.stripped 72.9 48.3 25.5 64.9
lenny 10 configure bash 82.3 84.0 0.0 3.7

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
flanders ls bash 44.3 44.4 0.0 3.6
flanders ls osh_eval.opt.stripped 60.0 44.6 15.7 10.7
flanders ls-short bash 20.2 6.1 11.9 3.4
flanders ls-short osh_eval.opt.stripped 20.4 12.1 8.7 5.1
flanders mypy bash 52.7 39.7 13.1 3.7
flanders mypy osh_eval.opt.stripped 73.8 56.1 18.0 13.1
lenny ls bash 14.7 10.9 3.8 3.8
lenny ls osh_eval.opt.stripped 16.5 12.1 4.4 11.0
lenny ls-short bash 5.9 5.0 0.0 3.8
lenny ls-short osh_eval.opt.stripped 4.9 5.0 0.0 5.3
lenny mypy bash 18.3 13.4 4.9 3.9
lenny mypy osh_eval.opt.stripped 25.2 25.3 0.0 13.4

bubble_sort (array of integers, arrays of strings)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders bytes 200 python 43.2 29.2 14.6 6.7
flanders bytes 200 osh_eval.opt.stripped 587.6 520.8 67.3 171.6
flanders bytes 200 bash 787.0 783.1 4.4 3.3
flanders int 200 python 80.7 67.0 12.1 6.7
flanders int 200 osh_eval.opt.stripped 494.8 421.9 73.4 139.9
flanders int 200 bash 780.2 774.7 4.0 3.3
lenny bytes 200 python 12.2 12.4 0.0 7.2
lenny bytes 200 osh_eval.opt.stripped 194.9 131.2 63.8 160.2
lenny bytes 200 bash 212.6 212.7 0.0 3.5
lenny int 200 python 27.1 27.1 0.0 7.2
lenny int 200 osh_eval.opt.stripped 181.4 127.3 54.1 143.7
lenny int 200 bash 217.5 205.6 11.8 3.5

Interpreter and Host Details

shell label shell id
bash bash-d685a43c
dash dash-2887d9e6
oil-native osh_eval.opt.stripped-e3fbcc0d
python python-e4b9f5ce
bash bash-9af8f89f
dash dash-9ff48631
python python-e809d907
host label host id
flanders flanders-63f04b74
lenny lenny-c758ab9d

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders bubble_sort bytes 200 python 43.2 29.2 14.6 6.7
flanders bubble_sort bytes 200 osh_eval.opt.stripped 587.6 520.8 67.3 171.6
flanders bubble_sort bytes 200 bash 787.0 783.1 4.4 3.3
flanders bubble_sort int 200 python 80.7 67.0 12.1 6.7
flanders bubble_sort int 200 osh_eval.opt.stripped 494.8 421.9 73.4 139.9
flanders bubble_sort int 200 bash 780.2 774.7 4.0 3.3
flanders fib 200 44 python 22.9 14.0 7.0 6.9
flanders fib 200 44 dash 55.3 55.3 0.0 1.7
flanders fib 200 44 bash 245.7 241.6 4.0 3.1
flanders fib 200 44 osh_eval.opt.stripped 297.1 249.5 47.5 99.7
flanders hello _ _ bash 2.5 0.0 2.2 3.0
flanders hello _ _ osh_eval.opt.stripped 3.2 0.0 3.2 4.1
flanders hello _ _ dash 1.2 1.2 0.0 1.6
flanders hello _ _ python 21.2 15.4 3.9 6.8
flanders palindrome bytes _ python 42.7 35.5 7.7 7.1
flanders palindrome bytes _ bash 518.1 498.6 20.0 3.3
flanders palindrome bytes _ osh_eval.opt.stripped 794.8 648.2 144.4 232.1
flanders palindrome unicode _ python 57.9 46.7 11.7 7.1
flanders palindrome unicode _ bash 513.6 449.6 62.3 3.4
flanders palindrome unicode _ osh_eval.opt.stripped 792.5 616.1 176.9 232.2
flanders parse_help ls _ bash 44.3 44.4 0.0 3.6
flanders parse_help ls _ osh_eval.opt.stripped 60.0 44.6 15.7 10.7
flanders parse_help ls-short _ bash 20.2 6.1 11.9 3.4
flanders parse_help ls-short _ osh_eval.opt.stripped 20.4 12.1 8.7 5.1
flanders parse_help mypy _ bash 52.7 39.7 13.1 3.7
flanders parse_help mypy _ osh_eval.opt.stripped 73.8 56.1 18.0 13.1
flanders word_freq 10 configure python 44.8 30.6 15.2 7.1
flanders word_freq 10 configure osh_eval.opt.stripped 229.8 191.0 41.3 64.7
flanders word_freq 10 configure bash 299.8 285.9 20.0 3.4
lenny bubble_sort bytes 200 python 12.2 12.4 0.0 7.2
lenny bubble_sort bytes 200 osh_eval.opt.stripped 194.9 131.2 63.8 160.2
lenny bubble_sort bytes 200 bash 212.6 212.7 0.0 3.5
lenny bubble_sort int 200 python 27.1 27.1 0.0 7.2
lenny bubble_sort int 200 osh_eval.opt.stripped 181.4 127.3 54.1 143.7
lenny bubble_sort int 200 bash 217.5 205.6 11.8 3.5
lenny fib 200 44 python 7.0 0.0 6.7 7.3
lenny fib 200 44 dash 17.3 17.2 0.0 1.8
lenny fib 200 44 bash 61.8 61.7 0.0 3.4
lenny fib 200 44 osh_eval.opt.stripped 87.5 70.7 16.6 99.8
lenny hello _ _ dash 0.4 0.4 0.0 1.7
lenny hello _ _ bash 1.3 0.8 0.0 3.4
lenny hello _ _ osh_eval.opt.stripped 1.1 1.0 0.0 4.1
lenny hello _ _ python 6.2 6.0 0.0 7.1
lenny palindrome bytes _ python 12.0 9.5 2.6 7.5
lenny palindrome bytes _ bash 132.2 132.3 0.0 3.7
lenny palindrome bytes _ osh_eval.opt.stripped 240.2 169.2 71.0 232.5
lenny palindrome unicode _ python 13.9 4.5 9.4 7.6
lenny palindrome unicode _ bash 146.8 144.2 2.6 3.5
lenny palindrome unicode _ osh_eval.opt.stripped 239.9 177.2 62.7 232.4
lenny parse_help ls _ bash 14.7 10.9 3.8 3.8
lenny parse_help ls _ osh_eval.opt.stripped 16.5 12.1 4.4 11.0
lenny parse_help ls-short _ bash 5.9 5.0 0.0 3.8
lenny parse_help ls-short _ osh_eval.opt.stripped 4.9 5.0 0.0 5.3
lenny parse_help mypy _ bash 18.3 13.4 4.9 3.9
lenny parse_help mypy _ osh_eval.opt.stripped 25.2 25.3 0.0 13.4
lenny word_freq 10 configure python 14.8 6.0 9.7 7.5
lenny word_freq 10 configure osh_eval.opt.stripped 72.9 48.3 25.5 64.9
lenny word_freq 10 configure bash 82.3 84.0 0.0 3.7