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 1.1 0.0 1.8
broome _ _ bash 2.8 2.1 0.0 3.1
broome _ _ osh_eval.stripped 2.9 2.9 0.0 4.1
broome _ _ python2 17.5 16.7 0.0 7.3
lenny _ _ python2 6.4 0.0 6.3 7.3
lenny _ _ dash 0.4 0.3 0.0 1.7
lenny _ _ bash 0.7 0.7 0.0 3.4
lenny _ _ osh_eval.stripped 1.0 1.0 0.0 4.1

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python2 18.4 17.7 0.0 7.3
broome 200 44 dash 38.9 38.8 0.0 1.7
broome 200 44 bash 100.2 95.4 4.0 3.3
broome 200 44 osh_eval.stripped 173.4 124.9 48.4 102.5
lenny 200 44 python2 6.5 3.2 3.2 7.3
lenny 200 44 dash 17.4 17.3 0.0 1.8
lenny 200 44 bash 64.0 64.0 0.0 3.4
lenny 200 44 osh_eval.stripped 93.0 72.7 20.2 102.5

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 10 configure python2 33.5 25.9 9.3 7.4
broome 10 configure bash 132.8 123.5 14.3 3.6
broome 10 configure osh_eval.stripped 157.5 130.8 32.8 64.4
lenny 10 configure python2 13.2 9.9 4.1 7.4
lenny 10 configure osh_eval.stripped 76.6 54.8 23.9 64.4
lenny 10 configure bash 84.0 86.0 0.0 3.7

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
broome ls bash 30.5 25.8 5.1 3.8
broome ls osh_eval.stripped 56.5 48.9 8.0 10.5
broome ls-short bash 17.0 12.7 4.1 3.6
broome ls-short osh_eval.stripped 18.0 14.6 3.8 5.3
broome mypy bash 35.6 34.3 0.9 3.7
broome mypy osh_eval.stripped 67.2 42.9 24.6 13.0
lenny ls bash 17.2 17.4 0.0 3.8
lenny ls osh_eval.stripped 27.0 21.2 6.0 10.8
lenny ls-short bash 6.4 6.0 0.4 3.6
lenny ls-short osh_eval.stripped 7.3 7.2 0.4 5.2
lenny mypy bash 23.2 22.9 0.4 3.7
lenny mypy osh_eval.stripped 38.4 30.4 8.3 13.0

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 35.7 30.7 5.6 7.1
broome bytes 200 osh_eval.stripped 363.2 285.6 78.1 172.8
broome bytes 200 bash 352.5 348.1 4.9 3.6
broome int 200 python2 53.8 51.7 1.8 7.3
broome int 200 osh_eval.stripped 292.8 254.0 39.1 142.9
broome int 200 bash 319.6 309.1 10.5 3.4
lenny bytes 200 python2 12.9 9.0 4.2 7.3
lenny bytes 200 osh_eval.stripped 224.3 180.6 43.9 171.3
lenny bytes 200 bash 226.4 226.7 0.0 3.6
lenny int 200 python2 27.0 27.2 0.0 7.2
lenny int 200 osh_eval.stripped 195.0 158.8 36.5 145.0
lenny int 200 bash 207.1 207.3 0.0 3.6

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.stripped-14996860
python2 python2-e809d907
host label host id
broome broome-d80ab850
lenny lenny-6933449d

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome bubble_sort bytes 200 python2 35.7 30.7 5.6 7.1
broome bubble_sort bytes 200 osh_eval.stripped 363.2 285.6 78.1 172.8
broome bubble_sort bytes 200 bash 352.5 348.1 4.9 3.6
broome bubble_sort int 200 python2 53.8 51.7 1.8 7.3
broome bubble_sort int 200 osh_eval.stripped 292.8 254.0 39.1 142.9
broome bubble_sort int 200 bash 319.6 309.1 10.5 3.4
broome fib 200 44 python2 18.4 17.7 0.0 7.3
broome fib 200 44 dash 38.9 38.8 0.0 1.7
broome fib 200 44 bash 100.2 95.4 4.0 3.3
broome fib 200 44 osh_eval.stripped 173.4 124.9 48.4 102.5
broome hello _ _ dash 1.1 1.1 0.0 1.8
broome hello _ _ bash 2.8 2.1 0.0 3.1
broome hello _ _ osh_eval.stripped 2.9 2.9 0.0 4.1
broome hello _ _ python2 17.5 16.7 0.0 7.3
broome palindrome bytes _ python2 34.1 33.6 0.9 7.4
broome palindrome bytes _ bash 238.8 217.4 21.9 3.5
broome palindrome bytes _ osh_eval.stripped 407.9 319.6 88.7 237.4
broome palindrome unicode _ python2 35.6 30.3 5.1 7.6
broome palindrome unicode _ bash 222.1 204.8 17.2 3.6
broome palindrome unicode _ osh_eval.stripped 421.9 330.1 92.1 237.2
broome parse_help ls _ bash 30.5 25.8 5.1 3.8
broome parse_help ls _ osh_eval.stripped 56.5 48.9 8.0 10.5
broome parse_help ls-short _ bash 17.0 12.7 4.1 3.6
broome parse_help ls-short _ osh_eval.stripped 18.0 14.6 3.8 5.3
broome parse_help mypy _ bash 35.6 34.3 0.9 3.7
broome parse_help mypy _ osh_eval.stripped 67.2 42.9 24.6 13.0
broome word_freq 10 configure python2 33.5 25.9 9.3 7.4
broome word_freq 10 configure bash 132.8 123.5 14.3 3.6
broome word_freq 10 configure osh_eval.stripped 157.5 130.8 32.8 64.4
lenny bubble_sort bytes 200 python2 12.9 9.0 4.2 7.3
lenny bubble_sort bytes 200 osh_eval.stripped 224.3 180.6 43.9 171.3
lenny bubble_sort bytes 200 bash 226.4 226.7 0.0 3.6
lenny bubble_sort int 200 python2 27.0 27.2 0.0 7.2
lenny bubble_sort int 200 osh_eval.stripped 195.0 158.8 36.5 145.0
lenny bubble_sort int 200 bash 207.1 207.3 0.0 3.6
lenny fib 200 44 python2 6.5 3.2 3.2 7.3
lenny fib 200 44 dash 17.4 17.3 0.0 1.8
lenny fib 200 44 bash 64.0 64.0 0.0 3.4
lenny fib 200 44 osh_eval.stripped 93.0 72.7 20.2 102.5
lenny hello _ _ python2 6.4 0.0 6.3 7.3
lenny hello _ _ dash 0.4 0.3 0.0 1.7
lenny hello _ _ bash 0.7 0.7 0.0 3.4
lenny hello _ _ osh_eval.stripped 1.0 1.0 0.0 4.1
lenny palindrome bytes _ python2 12.9 13.1 0.0 7.6
lenny palindrome bytes _ bash 142.9 129.5 12.3 3.7
lenny palindrome bytes _ osh_eval.stripped 263.7 176.3 87.7 237.3
lenny palindrome unicode _ python2 14.9 13.7 1.4 7.6
lenny palindrome unicode _ bash 167.2 159.0 7.9 3.6
lenny palindrome unicode _ osh_eval.stripped 266.5 207.0 59.7 237.3
lenny parse_help ls _ bash 17.2 17.4 0.0 3.8
lenny parse_help ls _ osh_eval.stripped 27.0 21.2 6.0 10.8
lenny parse_help ls-short _ bash 6.4 6.0 0.4 3.6
lenny parse_help ls-short _ osh_eval.stripped 7.3 7.2 0.4 5.2
lenny parse_help mypy _ bash 23.2 22.9 0.4 3.7
lenny parse_help mypy _ osh_eval.stripped 38.4 30.4 8.3 13.0
lenny word_freq 10 configure python2 13.2 9.9 4.1 7.4
lenny word_freq 10 configure osh_eval.stripped 76.6 54.8 23.9 64.4
lenny word_freq 10 configure bash 84.0 86.0 0.0 3.7