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
broome _ _ dash 1.1 0.0 1.0 1.8
broome _ _ osh_eval.stripped 2.8 0.0 2.8 4.2
broome _ _ bash 2.1 2.0 0.0 3.4
broome _ _ python2 17.5 17.4 0.0 7.3
lenny _ _ bash 0.8 0.0 0.8 3.3
lenny _ _ dash 0.6 0.6 0.0 1.7
lenny _ _ osh_eval.stripped 1.4 1.3 0.0 4.2
lenny _ _ python2 7.2 7.2 0.0 7.3

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python2 18.4 14.7 3.7 7.4
broome 200 44 dash 38.7 38.6 0.0 1.8
broome 200 44 bash 88.7 84.6 4.0 3.4
broome 200 44 osh_eval.stripped 232.3 168.1 64.0 122.5
lenny 200 44 python2 6.8 6.7 0.0 7.4
lenny 200 44 dash 17.3 17.2 0.0 1.8
lenny 200 44 bash 62.7 62.6 0.0 3.4
lenny 200 44 osh_eval.stripped 131.2 107.3 23.9 122.7

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 10 configure python2 35.0 28.5 8.7 7.6
broome 10 configure osh_eval.stripped 159.6 120.6 45.3 75.0
broome 10 configure bash 171.8 150.8 27.3 3.7
lenny 10 configure python2 13.3 14.3 0.0 7.6
lenny 10 configure bash 81.0 82.6 0.4 3.7
lenny 10 configure osh_eval.stripped 100.3 82.6 19.9 74.8

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
broome ls bash 37.4 31.7 6.1 3.8
broome ls osh_eval.stripped 60.9 59.9 1.3 11.3
broome ls-short bash 16.7 16.2 1.1 3.6
broome ls-short osh_eval.stripped 18.6 18.0 0.9 5.3
broome mypy bash 43.4 39.0 4.8 3.9
broome mypy osh_eval.stripped 66.2 56.2 10.6 13.9
lenny ls bash 17.1 15.8 1.4 3.7
lenny ls osh_eval.stripped 30.2 26.4 4.0 11.4
lenny ls-short bash 6.3 5.7 0.0 3.9
lenny ls-short osh_eval.stripped 6.1 5.9 0.4 5.3
lenny mypy bash 18.0 17.8 0.4 3.9
lenny mypy osh_eval.stripped 40.6 36.5 4.4 14.2

bubble_sort (array of integers, arrays of strings)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome bytes 200 python2 33.1 21.5 12.0 7.4
broome bytes 200 osh_eval.stripped 400.7 304.2 96.8 195.7
broome bytes 200 bash 342.4 333.9 8.8 3.6
broome int 200 python2 60.9 61.3 0.0 7.4
broome int 200 osh_eval.stripped 370.5 310.0 61.1 169.5
broome int 200 bash 354.1 348.4 6.3 3.6
lenny bytes 200 python2 13.3 4.3 9.2 7.4
lenny bytes 200 osh_eval.stripped 268.3 205.7 62.7 204.2
lenny bytes 200 bash 232.0 228.2 4.0 3.6
lenny int 200 python2 28.9 26.3 2.9 7.3
lenny int 200 osh_eval.stripped 248.3 208.3 40.2 180.7
lenny int 200 bash 228.2 225.0 3.5 3.7

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.stripped-0d75ac5a
python2 python2-e809d907
host label host id
broome broome-8a85d07d
lenny lenny-23f35694

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome bubble_sort bytes 200 python2 33.1 21.5 12.0 7.4
broome bubble_sort bytes 200 osh_eval.stripped 400.7 304.2 96.8 195.7
broome bubble_sort bytes 200 bash 342.4 333.9 8.8 3.6
broome bubble_sort int 200 python2 60.9 61.3 0.0 7.4
broome bubble_sort int 200 osh_eval.stripped 370.5 310.0 61.1 169.5
broome bubble_sort int 200 bash 354.1 348.4 6.3 3.6
broome fib 200 44 python2 18.4 14.7 3.7 7.4
broome fib 200 44 dash 38.7 38.6 0.0 1.8
broome fib 200 44 bash 88.7 84.6 4.0 3.4
broome fib 200 44 osh_eval.stripped 232.3 168.1 64.0 122.5
broome hello _ _ dash 1.1 0.0 1.0 1.8
broome hello _ _ osh_eval.stripped 2.8 0.0 2.8 4.2
broome hello _ _ bash 2.1 2.0 0.0 3.4
broome hello _ _ python2 17.5 17.4 0.0 7.3
broome palindrome bytes _ python2 33.8 31.5 2.8 7.4
broome palindrome bytes _ bash 198.8 188.5 10.8 3.7
broome palindrome bytes _ osh_eval.stripped 540.2 415.9 124.7 277.3
broome palindrome unicode _ python2 37.6 23.8 14.2 7.5
broome palindrome unicode _ bash 258.2 242.6 16.2 3.5
broome palindrome unicode _ osh_eval.stripped 533.4 408.4 125.3 277.2
broome parse_help ls _ bash 37.4 31.7 6.1 3.8
broome parse_help ls _ osh_eval.stripped 60.9 59.9 1.3 11.3
broome parse_help ls-short _ bash 16.7 16.2 1.1 3.6
broome parse_help ls-short _ osh_eval.stripped 18.6 18.0 0.9 5.3
broome parse_help mypy _ bash 43.4 39.0 4.8 3.9
broome parse_help mypy _ osh_eval.stripped 66.2 56.2 10.6 13.9
broome word_freq 10 configure python2 35.0 28.5 8.7 7.6
broome word_freq 10 configure osh_eval.stripped 159.6 120.6 45.3 75.0
broome word_freq 10 configure bash 171.8 150.8 27.3 3.7
lenny bubble_sort bytes 200 python2 13.3 4.3 9.2 7.4
lenny bubble_sort bytes 200 osh_eval.stripped 268.3 205.7 62.7 204.2
lenny bubble_sort bytes 200 bash 232.0 228.2 4.0 3.6
lenny bubble_sort int 200 python2 28.9 26.3 2.9 7.3
lenny bubble_sort int 200 osh_eval.stripped 248.3 208.3 40.2 180.7
lenny bubble_sort int 200 bash 228.2 225.0 3.5 3.7
lenny fib 200 44 python2 6.8 6.7 0.0 7.4
lenny fib 200 44 dash 17.3 17.2 0.0 1.8
lenny fib 200 44 bash 62.7 62.6 0.0 3.4
lenny fib 200 44 osh_eval.stripped 131.2 107.3 23.9 122.7
lenny hello _ _ bash 0.8 0.0 0.8 3.3
lenny hello _ _ dash 0.6 0.6 0.0 1.7
lenny hello _ _ osh_eval.stripped 1.4 1.3 0.0 4.2
lenny hello _ _ python2 7.2 7.2 0.0 7.3
lenny palindrome bytes _ python2 12.9 7.5 5.7 7.5
lenny palindrome bytes _ bash 136.5 128.7 8.0 3.6
lenny palindrome bytes _ osh_eval.stripped 367.2 311.1 56.4 277.2
lenny palindrome unicode _ python2 14.7 14.9 0.0 7.6
lenny palindrome unicode _ bash 150.7 150.6 0.4 3.7
lenny palindrome unicode _ osh_eval.stripped 372.4 312.3 60.4 277.3
lenny parse_help ls _ bash 17.1 15.8 1.4 3.7
lenny parse_help ls _ osh_eval.stripped 30.2 26.4 4.0 11.4
lenny parse_help ls-short _ bash 6.3 5.7 0.0 3.9
lenny parse_help ls-short _ osh_eval.stripped 6.1 5.9 0.4 5.3
lenny parse_help mypy _ bash 18.0 17.8 0.4 3.9
lenny parse_help mypy _ osh_eval.stripped 40.6 36.5 4.4 14.2
lenny word_freq 10 configure python2 13.3 14.3 0.0 7.6
lenny word_freq 10 configure bash 81.0 82.6 0.4 3.7
lenny word_freq 10 configure osh_eval.stripped 100.3 82.6 19.9 74.8