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.0 0.0 1.7
broome _ _ bash 2.1 2.0 0.0 3.3
broome _ _ osh_eval.opt.stripped 2.9 2.8 0.0 4.1
broome _ _ python2 17.4 13.0 4.3 7.2
lenny _ _ bash 1.4 0.0 1.0 3.3
lenny _ _ dash 0.5 0.0 0.5 1.8
lenny _ _ python2 6.8 0.0 6.8 7.1
lenny _ _ osh_eval.opt.stripped 1.2 1.2 0.0 4.1

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python2 17.5 10.5 7.0 7.2
broome 200 44 dash 38.9 38.9 0.0 1.7
broome 200 44 bash 111.4 111.3 0.0 3.4
broome 200 44 osh_eval.opt.stripped 177.4 141.1 36.3 102.6
lenny 200 44 python2 7.4 7.4 0.0 7.3
lenny 200 44 dash 17.7 17.6 0.0 1.8
lenny 200 44 bash 66.7 66.5 0.0 3.4
lenny 200 44 osh_eval.opt.stripped 103.1 78.4 24.8 102.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 33.5 24.9 11.0 7.4
broome 10 configure osh_eval.opt.stripped 157.6 132.0 31.8 65.4
broome 10 configure bash 165.4 158.7 12.7 3.5
lenny 10 configure python2 17.0 14.7 3.3 7.6
lenny 10 configure osh_eval.opt.stripped 86.8 53.9 35.2 65.2
lenny 10 configure bash 86.4 84.7 4.0 3.6

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
broome ls osh_eval.opt.stripped 55.7 32.4 23.7 10.8
broome ls bash 37.9 38.4 0.0 3.8
broome ls-short bash 16.7 16.0 1.2 3.8
broome ls-short osh_eval.opt.stripped 18.2 17.3 1.3 5.4
broome mypy bash 45.1 39.2 6.2 3.8
broome mypy osh_eval.opt.stripped 67.9 60.3 8.0 12.9
lenny ls bash 16.6 13.6 3.0 3.8
lenny ls osh_eval.opt.stripped 25.9 26.2 0.0 10.8
lenny ls-short bash 6.8 1.8 4.6 3.7
lenny ls-short osh_eval.opt.stripped 7.8 6.3 1.8 5.4
lenny mypy bash 21.4 19.9 1.6 3.7
lenny mypy osh_eval.opt.stripped 33.5 29.9 4.0 13.1

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.7 15.5 19.8 7.2
broome bytes 200 osh_eval.opt.stripped 337.0 237.9 99.6 163.7
broome bytes 200 bash 354.9 350.4 5.0 3.6
broome int 200 python2 52.5 44.3 8.7 7.2
broome int 200 osh_eval.opt.stripped 282.7 233.8 49.1 145.0
broome int 200 bash 376.7 376.1 1.4 3.6
lenny bytes 200 python2 14.9 6.7 8.4 7.2
lenny bytes 200 osh_eval.opt.stripped 234.7 185.0 49.9 169.6
lenny bytes 200 bash 240.1 240.1 0.3 3.6
lenny int 200 python2 33.6 33.0 0.5 7.3
lenny int 200 osh_eval.opt.stripped 217.4 162.1 55.8 152.8
lenny int 200 bash 237.8 237.8 0.0 3.7

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.opt.stripped-34b24f00
python2 python2-e809d907
host label host id
broome broome-d80ab850
lenny lenny-761a4bee

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome bubble_sort bytes 200 python2 34.7 15.5 19.8 7.2
broome bubble_sort bytes 200 osh_eval.opt.stripped 337.0 237.9 99.6 163.7
broome bubble_sort bytes 200 bash 354.9 350.4 5.0 3.6
broome bubble_sort int 200 python2 52.5 44.3 8.7 7.2
broome bubble_sort int 200 osh_eval.opt.stripped 282.7 233.8 49.1 145.0
broome bubble_sort int 200 bash 376.7 376.1 1.4 3.6
broome fib 200 44 python2 17.5 10.5 7.0 7.2
broome fib 200 44 dash 38.9 38.9 0.0 1.7
broome fib 200 44 bash 111.4 111.3 0.0 3.4
broome fib 200 44 osh_eval.opt.stripped 177.4 141.1 36.3 102.6
broome hello _ _ dash 1.1 1.0 0.0 1.7
broome hello _ _ bash 2.1 2.0 0.0 3.3
broome hello _ _ osh_eval.opt.stripped 2.9 2.8 0.0 4.1
broome hello _ _ python2 17.4 13.0 4.3 7.2
broome palindrome bytes _ python2 32.1 22.6 10.1 7.3
broome palindrome bytes _ bash 264.7 240.3 24.9 3.5
broome palindrome bytes _ osh_eval.opt.stripped 431.9 309.7 122.7 237.4
broome palindrome unicode _ python2 37.6 32.6 5.4 7.5
broome palindrome unicode _ bash 282.3 252.5 30.5 3.6
broome palindrome unicode _ osh_eval.opt.stripped 422.5 306.8 116.3 237.5
broome parse_help ls _ osh_eval.opt.stripped 55.7 32.4 23.7 10.8
broome parse_help ls _ bash 37.9 38.4 0.0 3.8
broome parse_help ls-short _ bash 16.7 16.0 1.2 3.8
broome parse_help ls-short _ osh_eval.opt.stripped 18.2 17.3 1.3 5.4
broome parse_help mypy _ bash 45.1 39.2 6.2 3.8
broome parse_help mypy _ osh_eval.opt.stripped 67.9 60.3 8.0 12.9
broome word_freq 10 configure python2 33.5 24.9 11.0 7.4
broome word_freq 10 configure osh_eval.opt.stripped 157.6 132.0 31.8 65.4
broome word_freq 10 configure bash 165.4 158.7 12.7 3.5
lenny bubble_sort bytes 200 python2 14.9 6.7 8.4 7.2
lenny bubble_sort bytes 200 osh_eval.opt.stripped 234.7 185.0 49.9 169.6
lenny bubble_sort bytes 200 bash 240.1 240.1 0.3 3.6
lenny bubble_sort int 200 python2 33.6 33.0 0.5 7.3
lenny bubble_sort int 200 osh_eval.opt.stripped 217.4 162.1 55.8 152.8
lenny bubble_sort int 200 bash 237.8 237.8 0.0 3.7
lenny fib 200 44 python2 7.4 7.4 0.0 7.3
lenny fib 200 44 dash 17.7 17.6 0.0 1.8
lenny fib 200 44 bash 66.7 66.5 0.0 3.4
lenny fib 200 44 osh_eval.opt.stripped 103.1 78.4 24.8 102.7
lenny hello _ _ bash 1.4 0.0 1.0 3.3
lenny hello _ _ dash 0.5 0.0 0.5 1.8
lenny hello _ _ python2 6.8 0.0 6.8 7.1
lenny hello _ _ osh_eval.opt.stripped 1.2 1.2 0.0 4.1
lenny palindrome bytes _ python2 16.2 16.1 0.5 7.4
lenny palindrome bytes _ bash 147.7 143.9 4.0 3.7
lenny palindrome bytes _ osh_eval.opt.stripped 279.3 203.5 76.3 237.4
lenny palindrome unicode _ python2 19.5 16.1 3.6 7.6
lenny palindrome unicode _ bash 206.6 170.6 24.2 3.6
lenny palindrome unicode _ osh_eval.opt.stripped 282.9 186.4 96.8 237.5
lenny parse_help ls _ bash 16.6 13.6 3.0 3.8
lenny parse_help ls _ osh_eval.opt.stripped 25.9 26.2 0.0 10.8
lenny parse_help ls-short _ bash 6.8 1.8 4.6 3.7
lenny parse_help ls-short _ osh_eval.opt.stripped 7.8 6.3 1.8 5.4
lenny parse_help mypy _ bash 21.4 19.9 1.6 3.7
lenny parse_help mypy _ osh_eval.opt.stripped 33.5 29.9 4.0 13.1
lenny word_freq 10 configure python2 17.0 14.7 3.3 7.6
lenny word_freq 10 configure osh_eval.opt.stripped 86.8 53.9 35.2 65.2
lenny word_freq 10 configure bash 86.4 84.7 4.0 3.6