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.7
broome _ _ bash 2.1 2.1 0.0 3.4
broome _ _ osh_eval.stripped 3.1 3.1 0.0 4.1
broome _ _ python2 16.8 8.4 8.4 7.4
lenny _ _ dash 0.6 0.6 0.0 1.7
lenny _ _ bash 0.8 0.8 0.0 3.4
lenny _ _ osh_eval.stripped 1.1 1.1 0.0 4.4
lenny _ _ python2 6.0 6.0 0.0 7.4

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python2 17.5 17.4 0.0 7.4
broome 200 44 dash 34.6 34.5 0.0 1.7
broome 200 44 bash 111.9 107.9 4.0 3.4
broome 200 44 osh_eval.stripped 472.1 388.0 84.0 154.3
lenny 200 44 python2 7.9 4.0 4.0 7.3
lenny 200 44 dash 18.1 18.1 0.0 1.7
lenny 200 44 bash 65.0 65.0 0.0 3.3
lenny 200 44 osh_eval.stripped 351.3 299.3 51.9 154.3

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.4 24.3 13.2 7.4
broome 10 configure bash 174.4 167.7 13.0 3.7
broome 10 configure osh_eval.stripped 326.3 260.5 71.7 86.4
lenny 10 configure python2 15.3 14.7 1.6 7.4
lenny 10 configure bash 103.7 96.1 6.7 3.6
lenny 10 configure osh_eval.stripped 222.4 181.5 43.1 86.2

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
broome ls bash 38.1 34.5 4.1 3.8
broome ls osh_eval.stripped 71.3 55.3 16.5 12.4
broome ls-short osh_eval.stripped 18.9 7.8 11.6 5.6
broome ls-short bash 16.9 16.2 1.2 3.7
broome mypy bash 41.6 35.6 6.4 3.9
broome mypy osh_eval.stripped 89.9 73.8 16.6 15.5
lenny ls bash 15.0 14.8 0.3 3.7
lenny ls osh_eval.stripped 40.0 35.8 4.3 12.2
lenny ls-short bash 6.6 5.8 0.5 3.8
lenny ls-short osh_eval.stripped 8.1 8.4 0.0 5.5
lenny mypy bash 19.2 19.3 0.0 3.7
lenny mypy osh_eval.stripped 46.2 46.4 0.0 15.4

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 34.8 31.9 3.5 7.3
broome bytes 200 bash 321.8 314.5 7.8 3.5
broome bytes 200 osh_eval.stripped 912.7 820.2 92.9 286.3
broome int 200 python2 55.8 49.4 6.9 7.3
broome int 200 bash 363.6 358.8 5.2 3.7
broome int 200 osh_eval.stripped 840.9 729.1 112.2 222.6
lenny bytes 200 python2 14.1 14.4 0.0 7.4
lenny bytes 200 bash 255.2 252.5 2.9 3.7
lenny bytes 200 osh_eval.stripped 842.9 699.0 144.0 286.4
lenny int 200 python2 34.2 30.5 4.0 7.5
lenny int 200 bash 230.5 230.4 0.3 3.6
lenny int 200 osh_eval.stripped 730.6 650.7 79.7 225.9

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.stripped-15aebd46
python2 python2-e809d907
host label host id
broome broome-8a85d07d
lenny lenny-9de4b19b

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome bubble_sort bytes 200 python2 34.8 31.9 3.5 7.3
broome bubble_sort bytes 200 bash 321.8 314.5 7.8 3.5
broome bubble_sort bytes 200 osh_eval.stripped 912.7 820.2 92.9 286.3
broome bubble_sort int 200 python2 55.8 49.4 6.9 7.3
broome bubble_sort int 200 bash 363.6 358.8 5.2 3.7
broome bubble_sort int 200 osh_eval.stripped 840.9 729.1 112.2 222.6
broome fib 200 44 python2 17.5 17.4 0.0 7.4
broome fib 200 44 dash 34.6 34.5 0.0 1.7
broome fib 200 44 bash 111.9 107.9 4.0 3.4
broome fib 200 44 osh_eval.stripped 472.1 388.0 84.0 154.3
broome hello _ _ dash 1.1 1.1 0.0 1.7
broome hello _ _ bash 2.1 2.1 0.0 3.4
broome hello _ _ osh_eval.stripped 3.1 3.1 0.0 4.1
broome hello _ _ python2 16.8 8.4 8.4 7.4
broome palindrome bytes _ python2 32.2 21.8 10.7 7.5
broome palindrome bytes _ bash 198.5 190.1 8.8 3.7
broome palindrome bytes _ osh_eval.stripped 1,099.7 981.9 118.0 346.4
broome palindrome unicode _ python2 35.1 32.8 2.8 7.5
broome palindrome unicode _ bash 266.3 260.6 6.3 3.7
broome palindrome unicode _ osh_eval.stripped 1,067.6 860.1 207.8 346.4
broome parse_help ls _ bash 38.1 34.5 4.1 3.8
broome parse_help ls _ osh_eval.stripped 71.3 55.3 16.5 12.4
broome parse_help ls-short _ osh_eval.stripped 18.9 7.8 11.6 5.6
broome parse_help ls-short _ bash 16.9 16.2 1.2 3.7
broome parse_help mypy _ bash 41.6 35.6 6.4 3.9
broome parse_help mypy _ osh_eval.stripped 89.9 73.8 16.6 15.5
broome word_freq 10 configure python2 35.4 24.3 13.2 7.4
broome word_freq 10 configure bash 174.4 167.7 13.0 3.7
broome word_freq 10 configure osh_eval.stripped 326.3 260.5 71.7 86.4
lenny bubble_sort bytes 200 python2 14.1 14.4 0.0 7.4
lenny bubble_sort bytes 200 bash 255.2 252.5 2.9 3.7
lenny bubble_sort bytes 200 osh_eval.stripped 842.9 699.0 144.0 286.4
lenny bubble_sort int 200 python2 34.2 30.5 4.0 7.5
lenny bubble_sort int 200 bash 230.5 230.4 0.3 3.6
lenny bubble_sort int 200 osh_eval.stripped 730.6 650.7 79.7 225.9
lenny fib 200 44 python2 7.9 4.0 4.0 7.3
lenny fib 200 44 dash 18.1 18.1 0.0 1.7
lenny fib 200 44 bash 65.0 65.0 0.0 3.3
lenny fib 200 44 osh_eval.stripped 351.3 299.3 51.9 154.3
lenny hello _ _ dash 0.6 0.6 0.0 1.7
lenny hello _ _ bash 0.8 0.8 0.0 3.4
lenny hello _ _ osh_eval.stripped 1.1 1.1 0.0 4.4
lenny hello _ _ python2 6.0 6.0 0.0 7.4
lenny palindrome bytes _ python2 14.7 11.8 3.2 7.5
lenny palindrome bytes _ bash 139.5 127.5 12.3 3.6
lenny palindrome bytes _ osh_eval.stripped 863.2 711.1 152.5 346.3
lenny palindrome unicode _ python2 17.8 17.7 0.4 7.5
lenny palindrome unicode _ bash 149.5 139.0 10.7 3.7
lenny palindrome unicode _ osh_eval.stripped 866.4 720.0 146.7 346.3
lenny parse_help ls _ bash 15.0 14.8 0.3 3.7
lenny parse_help ls _ osh_eval.stripped 40.0 35.8 4.3 12.2
lenny parse_help ls-short _ bash 6.6 5.8 0.5 3.8
lenny parse_help ls-short _ osh_eval.stripped 8.1 8.4 0.0 5.5
lenny parse_help mypy _ bash 19.2 19.3 0.0 3.7
lenny parse_help mypy _ osh_eval.stripped 46.2 46.4 0.0 15.4
lenny word_freq 10 configure python2 15.3 14.7 1.6 7.4
lenny word_freq 10 configure bash 103.7 96.1 6.7 3.6
lenny word_freq 10 configure osh_eval.stripped 222.4 181.5 43.1 86.2