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.0 0.0 0.9 1.7
broome _ _ osh_eval.stripped 3.2 0.0 3.1 4.2
broome _ _ bash 2.1 2.0 0.0 3.3
broome _ _ python2 16.8 16.7 0.0 7.2
lenny _ _ python2 9.0 0.0 8.2 7.2
lenny _ _ dash 0.6 0.5 0.0 1.6
lenny _ _ osh_eval.stripped 1.2 1.2 0.0 4.4
lenny _ _ bash 11.2 1.4 0.0 3.4

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python2 18.5 18.5 0.0 7.4
broome 200 44 dash 39.8 39.8 0.0 1.8
broome 200 44 bash 133.1 129.1 3.9 3.4
broome 200 44 osh_eval.stripped 1,499.9 1,391.9 108.0 251.0
lenny 200 44 python2 21.1 8.3 2.8 7.5
lenny 200 44 dash 17.2 17.1 0.0 1.7
lenny 200 44 bash 78.9 78.6 0.0 3.5
lenny 200 44 osh_eval.stripped 1,531.2 1,443.0 88.2 251.0

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 10 configure python2 36.0 28.9 9.2 7.5
broome 10 configure bash 155.6 151.6 9.0 3.7
broome 10 configure osh_eval.stripped 798.8 766.0 38.7 141.5
lenny 10 configure python2 24.3 21.9 2.8 7.3
lenny 10 configure bash 91.4 87.5 6.0 3.6
lenny 10 configure osh_eval.stripped 787.7 726.2 64.2 141.3

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
broome ls bash 39.5 27.1 12.8 3.8
broome ls osh_eval.stripped 104.4 86.8 17.9 17.3
broome ls-short bash 16.8 15.0 2.3 3.7
broome ls-short osh_eval.stripped 22.9 22.0 1.3 5.6
broome mypy bash 42.6 26.7 16.3 3.7
broome mypy osh_eval.stripped 129.1 104.4 25.0 22.0
lenny ls bash 20.7 20.9 0.0 3.6
lenny ls osh_eval.stripped 61.7 62.0 0.0 17.4
lenny ls-short bash 8.2 7.7 0.5 3.6
lenny ls-short osh_eval.stripped 9.9 10.1 0.0 5.7
lenny mypy bash 24.6 19.2 5.6 3.7
lenny mypy osh_eval.stripped 75.0 70.7 4.1 21.8

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 31.1 21.2 10.1 7.4
broome bytes 200 bash 344.5 336.0 9.0 3.6
broome bytes 200 osh_eval.stripped 2,816.7 2,654.4 162.7 442.3
broome int 200 python2 61.9 61.3 0.9 7.3
broome int 200 bash 355.3 349.7 6.2 3.7
broome int 200 osh_eval.stripped 2,603.2 2,438.3 165.4 395.0
lenny bytes 200 python2 13.1 8.7 4.7 7.3
lenny bytes 200 bash 225.5 225.8 0.0 3.5
lenny bytes 200 osh_eval.stripped 2,863.2 2,688.3 175.2 447.1
lenny int 200 python2 71.9 50.0 12.3 7.2
lenny int 200 bash 217.5 212.3 4.6 3.6
lenny int 200 osh_eval.stripped 2,592.0 2,480.1 112.1 391.6

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.stripped-850fa8be
python2 python2-e809d907
host label host id
broome broome-8a85d07d
lenny lenny-b7f988ad

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome bubble_sort bytes 200 python2 31.1 21.2 10.1 7.4
broome bubble_sort bytes 200 bash 344.5 336.0 9.0 3.6
broome bubble_sort bytes 200 osh_eval.stripped 2,816.7 2,654.4 162.7 442.3
broome bubble_sort int 200 python2 61.9 61.3 0.9 7.3
broome bubble_sort int 200 bash 355.3 349.7 6.2 3.7
broome bubble_sort int 200 osh_eval.stripped 2,603.2 2,438.3 165.4 395.0
broome fib 200 44 python2 18.5 18.5 0.0 7.4
broome fib 200 44 dash 39.8 39.8 0.0 1.8
broome fib 200 44 bash 133.1 129.1 3.9 3.4
broome fib 200 44 osh_eval.stripped 1,499.9 1,391.9 108.0 251.0
broome hello _ _ dash 1.0 0.0 0.9 1.7
broome hello _ _ osh_eval.stripped 3.2 0.0 3.1 4.2
broome hello _ _ bash 2.1 2.0 0.0 3.3
broome hello _ _ python2 16.8 16.7 0.0 7.2
broome palindrome bytes _ python2 34.7 24.7 10.6 7.4
broome palindrome bytes _ bash 199.2 176.7 23.0 3.6
broome palindrome bytes _ osh_eval.stripped 3,691.5 3,482.3 209.3 567.9
broome palindrome unicode _ python2 38.4 36.0 2.7 7.7
broome palindrome unicode _ bash 244.9 217.9 27.6 3.5
broome palindrome unicode _ osh_eval.stripped 3,654.4 3,450.0 204.3 567.9
broome parse_help ls _ bash 39.5 27.1 12.8 3.8
broome parse_help ls _ osh_eval.stripped 104.4 86.8 17.9 17.3
broome parse_help ls-short _ bash 16.8 15.0 2.3 3.7
broome parse_help ls-short _ osh_eval.stripped 22.9 22.0 1.3 5.6
broome parse_help mypy _ bash 42.6 26.7 16.3 3.7
broome parse_help mypy _ osh_eval.stripped 129.1 104.4 25.0 22.0
broome word_freq 10 configure python2 36.0 28.9 9.2 7.5
broome word_freq 10 configure bash 155.6 151.6 9.0 3.7
broome word_freq 10 configure osh_eval.stripped 798.8 766.0 38.7 141.5
lenny bubble_sort bytes 200 python2 13.1 8.7 4.7 7.3
lenny bubble_sort bytes 200 bash 225.5 225.8 0.0 3.5
lenny bubble_sort bytes 200 osh_eval.stripped 2,863.2 2,688.3 175.2 447.1
lenny bubble_sort int 200 python2 71.9 50.0 12.3 7.2
lenny bubble_sort int 200 bash 217.5 212.3 4.6 3.6
lenny bubble_sort int 200 osh_eval.stripped 2,592.0 2,480.1 112.1 391.6
lenny fib 200 44 python2 21.1 8.3 2.8 7.5
lenny fib 200 44 dash 17.2 17.1 0.0 1.7
lenny fib 200 44 bash 78.9 78.6 0.0 3.5
lenny fib 200 44 osh_eval.stripped 1,531.2 1,443.0 88.2 251.0
lenny hello _ _ python2 9.0 0.0 8.2 7.2
lenny hello _ _ dash 0.6 0.5 0.0 1.6
lenny hello _ _ osh_eval.stripped 1.2 1.2 0.0 4.4
lenny hello _ _ bash 11.2 1.4 0.0 3.4
lenny palindrome bytes _ python2 14.8 15.1 0.0 7.5
lenny palindrome bytes _ bash 134.3 134.1 0.5 3.6
lenny palindrome bytes _ osh_eval.stripped 3,671.4 3,381.8 256.0 567.8
lenny palindrome unicode _ python2 65.7 27.2 4.3 7.6
lenny palindrome unicode _ bash 159.6 158.8 1.0 3.6
lenny palindrome unicode _ osh_eval.stripped 3,654.0 3,424.9 228.0 568.0
lenny parse_help ls _ bash 20.7 20.9 0.0 3.6
lenny parse_help ls _ osh_eval.stripped 61.7 62.0 0.0 17.4
lenny parse_help ls-short _ bash 8.2 7.7 0.5 3.6
lenny parse_help ls-short _ osh_eval.stripped 9.9 10.1 0.0 5.7
lenny parse_help mypy _ bash 24.6 19.2 5.6 3.7
lenny parse_help mypy _ osh_eval.stripped 75.0 70.7 4.1 21.8
lenny word_freq 10 configure python2 24.3 21.9 2.8 7.3
lenny word_freq 10 configure bash 91.4 87.5 6.0 3.6
lenny word_freq 10 configure osh_eval.stripped 787.7 726.2 64.2 141.3