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 _ _ dash 1.6 0.0 1.6 1.6
flanders _ _ osh_eval.opt.stripped 4.2 0.0 4.2 4.0
flanders _ _ bash 5.2 3.1 0.0 3.1
flanders _ _ python 30.2 17.7 10.6 6.8
lenny _ _ osh_eval.opt.stripped 1.1 0.0 1.1 4.3
lenny _ _ dash 0.4 0.4 0.0 1.8
lenny _ _ bash 0.8 0.8 0.0 3.5
lenny _ _ python 6.3 6.3 0.0 7.3

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders 200 44 python 28.1 17.4 8.7 6.9
flanders 200 44 dash 71.2 71.1 0.0 1.6
flanders 200 44 osh_eval.opt.stripped 371.9 299.9 72.0 99.0
flanders 200 44 bash 336.3 332.0 4.0 3.1
lenny 200 44 python 6.7 6.7 0.0 7.3
lenny 200 44 dash 18.3 18.3 0.0 1.8
lenny 200 44 bash 63.0 62.9 0.0 3.3
lenny 200 44 osh_eval.opt.stripped 90.4 65.7 24.6 99.1

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders 10 configure python 54.5 43.2 12.4 7.1
flanders 10 configure osh_eval.opt.stripped 292.5 226.5 69.1 63.6
flanders 10 configure bash 392.4 373.1 28.3 3.4
lenny 10 configure python 17.9 15.4 3.4 7.4
lenny 10 configure osh_eval.opt.stripped 73.4 62.0 12.2 63.8
lenny 10 configure bash 82.6 80.2 4.5 3.6

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
flanders ls osh_eval.opt.stripped 71.0 39.2 32.1 10.5
flanders ls bash 55.3 49.6 5.9 3.7
flanders ls-short bash 23.0 18.2 3.0 3.5
flanders ls-short osh_eval.opt.stripped 23.2 19.3 4.2 5.0
flanders mypy osh_eval.opt.stripped 90.0 59.6 30.8 13.0
flanders mypy bash 70.3 62.4 6.3 3.6
lenny ls bash 15.5 15.6 0.0 3.7
lenny ls osh_eval.opt.stripped 18.7 18.3 0.5 10.9
lenny ls-short bash 4.8 4.8 0.0 3.8
lenny ls-short osh_eval.opt.stripped 5.3 5.3 0.0 5.3
lenny mypy osh_eval.opt.stripped 26.6 19.0 7.6 13.2
lenny mypy bash 19.0 19.1 0.0 3.8

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 46.4 40.8 6.2 6.7
flanders bytes 200 osh_eval.opt.stripped 768.9 639.4 129.8 165.9
flanders bytes 200 bash 997.6 985.3 12.8 3.3
flanders int 200 python 108.2 102.7 4.0 6.7
flanders int 200 osh_eval.opt.stripped 716.3 644.8 72.0 148.6
flanders int 200 bash 978.9 973.5 4.0 3.3
lenny bytes 200 python 12.3 12.4 0.0 7.4
lenny bytes 200 osh_eval.opt.stripped 209.3 159.2 50.1 155.3
lenny bytes 200 bash 218.4 218.0 0.5 3.7
lenny int 200 python 27.2 27.3 0.0 7.2
lenny int 200 osh_eval.opt.stripped 184.1 159.7 24.6 134.5
lenny int 200 bash 204.0 204.2 0.0 3.7

Interpreter and Host Details

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

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders bubble_sort bytes 200 python 46.4 40.8 6.2 6.7
flanders bubble_sort bytes 200 osh_eval.opt.stripped 768.9 639.4 129.8 165.9
flanders bubble_sort bytes 200 bash 997.6 985.3 12.8 3.3
flanders bubble_sort int 200 python 108.2 102.7 4.0 6.7
flanders bubble_sort int 200 osh_eval.opt.stripped 716.3 644.8 72.0 148.6
flanders bubble_sort int 200 bash 978.9 973.5 4.0 3.3
flanders fib 200 44 python 28.1 17.4 8.7 6.9
flanders fib 200 44 dash 71.2 71.1 0.0 1.6
flanders fib 200 44 osh_eval.opt.stripped 371.9 299.9 72.0 99.0
flanders fib 200 44 bash 336.3 332.0 4.0 3.1
flanders hello _ _ dash 1.6 0.0 1.6 1.6
flanders hello _ _ osh_eval.opt.stripped 4.2 0.0 4.2 4.0
flanders hello _ _ bash 5.2 3.1 0.0 3.1
flanders hello _ _ python 30.2 17.7 10.6 6.8
flanders palindrome bytes _ python 49.8 41.4 9.0 7.1
flanders palindrome bytes _ bash 666.5 611.2 55.8 3.3
flanders palindrome bytes _ osh_eval.opt.stripped 1,020.7 851.8 169.4 231.0
flanders palindrome unicode _ python 66.8 51.3 14.1 7.1
flanders palindrome unicode _ bash 710.1 663.1 46.7 3.3
flanders palindrome unicode _ osh_eval.opt.stripped 1,011.4 821.8 190.3 230.9
flanders parse_help ls _ osh_eval.opt.stripped 71.0 39.2 32.1 10.5
flanders parse_help ls _ bash 55.3 49.6 5.9 3.7
flanders parse_help ls-short _ bash 23.0 18.2 3.0 3.5
flanders parse_help ls-short _ osh_eval.opt.stripped 23.2 19.3 4.2 5.0
flanders parse_help mypy _ osh_eval.opt.stripped 90.0 59.6 30.8 13.0
flanders parse_help mypy _ bash 70.3 62.4 6.3 3.6
flanders word_freq 10 configure python 54.5 43.2 12.4 7.1
flanders word_freq 10 configure osh_eval.opt.stripped 292.5 226.5 69.1 63.6
flanders word_freq 10 configure bash 392.4 373.1 28.3 3.4
lenny bubble_sort bytes 200 python 12.3 12.4 0.0 7.4
lenny bubble_sort bytes 200 osh_eval.opt.stripped 209.3 159.2 50.1 155.3
lenny bubble_sort bytes 200 bash 218.4 218.0 0.5 3.7
lenny bubble_sort int 200 python 27.2 27.3 0.0 7.2
lenny bubble_sort int 200 osh_eval.opt.stripped 184.1 159.7 24.6 134.5
lenny bubble_sort int 200 bash 204.0 204.2 0.0 3.7
lenny fib 200 44 python 6.7 6.7 0.0 7.3
lenny fib 200 44 dash 18.3 18.3 0.0 1.8
lenny fib 200 44 bash 63.0 62.9 0.0 3.3
lenny fib 200 44 osh_eval.opt.stripped 90.4 65.7 24.6 99.1
lenny hello _ _ osh_eval.opt.stripped 1.1 0.0 1.1 4.3
lenny hello _ _ dash 0.4 0.4 0.0 1.8
lenny hello _ _ bash 0.8 0.8 0.0 3.5
lenny hello _ _ python 6.3 6.3 0.0 7.3
lenny palindrome bytes _ python 15.3 6.7 9.0 7.5
lenny palindrome bytes _ bash 137.1 125.4 11.8 3.5
lenny palindrome bytes _ osh_eval.opt.stripped 236.0 157.2 78.8 231.1
lenny palindrome unicode _ python 16.5 12.4 4.2 7.6
lenny palindrome unicode _ bash 155.0 151.2 4.0 3.6
lenny palindrome unicode _ osh_eval.opt.stripped 233.5 176.8 56.8 231.3
lenny parse_help ls _ bash 15.5 15.6 0.0 3.7
lenny parse_help ls _ osh_eval.opt.stripped 18.7 18.3 0.5 10.9
lenny parse_help ls-short _ bash 4.8 4.8 0.0 3.8
lenny parse_help ls-short _ osh_eval.opt.stripped 5.3 5.3 0.0 5.3
lenny parse_help mypy _ osh_eval.opt.stripped 26.6 19.0 7.6 13.2
lenny parse_help mypy _ bash 19.0 19.1 0.0 3.8
lenny word_freq 10 configure python 17.9 15.4 3.4 7.4
lenny word_freq 10 configure osh_eval.opt.stripped 73.4 62.0 12.2 63.8
lenny word_freq 10 configure bash 82.6 80.2 4.5 3.6