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 1.0 0.0 1.7
broome _ _ bash 2.2 2.2 0.0 3.4
broome _ _ osh_eval.opt.stripped 2.9 2.9 0.0 4.2
broome _ _ python 17.4 17.4 0.0 7.2
spring _ _ dash 1.1 1.0 0.0 1.7
spring _ _ bash 2.1 2.0 0.0 3.3
spring _ _ osh_eval.opt.stripped 2.9 2.9 0.0 4.3
spring _ _ python 16.3 12.2 4.1 7.2

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python 15.5 15.4 0.0 7.4
broome 200 44 dash 36.9 36.8 0.0 1.8
broome 200 44 bash 111.4 111.4 0.0 3.3
broome 200 44 osh_eval.opt.stripped 174.4 129.7 44.6 101.5
spring 200 44 python 15.5 7.8 7.8 7.4
spring 200 44 dash 37.3 37.3 0.0 1.7
spring 200 44 bash 110.5 110.5 0.0 3.3
spring 200 44 osh_eval.opt.stripped 170.4 126.8 43.6 101.8

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 10 configure python 30.6 22.9 9.6 7.4
broome 10 configure osh_eval.opt.stripped 154.5 116.1 40.6 64.3
broome 10 configure bash 164.6 159.1 11.2 3.6
spring 10 configure python 32.4 19.5 15.1 7.4
spring 10 configure osh_eval.opt.stripped 160.9 118.9 44.0 64.6
spring 10 configure bash 156.2 138.3 23.8 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 42.3 25.9 16.6 10.6
broome ls bash 35.3 30.4 5.2 3.8
broome ls-short bash 14.3 13.6 1.0 3.6
broome ls-short osh_eval.opt.stripped 15.2 15.6 0.0 5.4
broome mypy osh_eval.opt.stripped 51.5 25.6 26.1 12.9
broome mypy bash 38.2 26.4 12.2 3.8
spring ls osh_eval.opt.stripped 42.9 32.1 11.1 10.6
spring ls bash 36.8 33.3 3.8 3.9
spring ls-short osh_eval.opt.stripped 13.9 8.1 6.0 5.3
spring ls-short bash 13.1 12.6 0.8 3.8
spring mypy bash 40.0 37.5 2.7 3.8
spring mypy osh_eval.opt.stripped 52.9 45.1 8.0 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 python 30.0 26.6 3.8 7.3
broome bytes 200 osh_eval.opt.stripped 334.9 281.0 54.3 163.7
broome bytes 200 bash 386.6 385.2 1.7 3.6
broome int 200 python 58.6 57.4 1.5 7.3
broome int 200 osh_eval.opt.stripped 353.5 284.7 69.2 143.9
broome int 200 bash 395.1 393.1 2.5 3.7
spring bytes 200 python 29.0 22.2 7.2 7.2
spring bytes 200 osh_eval.opt.stripped 367.9 292.2 76.1 169.8
spring bytes 200 bash 408.8 405.2 4.0 3.6
spring int 200 python 60.5 49.1 11.8 7.2
spring int 200 osh_eval.opt.stripped 352.1 300.4 52.1 154.3
spring int 200 bash 365.7 362.9 3.3 3.6

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.opt.stripped-419ba42a
python python-e809d907
host label host id
broome broome-d80ab850
spring spring-d80ab850

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome bubble_sort bytes 200 python 30.0 26.6 3.8 7.3
broome bubble_sort bytes 200 osh_eval.opt.stripped 334.9 281.0 54.3 163.7
broome bubble_sort bytes 200 bash 386.6 385.2 1.7 3.6
broome bubble_sort int 200 python 58.6 57.4 1.5 7.3
broome bubble_sort int 200 osh_eval.opt.stripped 353.5 284.7 69.2 143.9
broome bubble_sort int 200 bash 395.1 393.1 2.5 3.7
broome fib 200 44 python 15.5 15.4 0.0 7.4
broome fib 200 44 dash 36.9 36.8 0.0 1.8
broome fib 200 44 bash 111.4 111.4 0.0 3.3
broome fib 200 44 osh_eval.opt.stripped 174.4 129.7 44.6 101.5
broome hello _ _ dash 1.0 1.0 0.0 1.7
broome hello _ _ bash 2.2 2.2 0.0 3.4
broome hello _ _ osh_eval.opt.stripped 2.9 2.9 0.0 4.2
broome hello _ _ python 17.4 17.4 0.0 7.2
broome palindrome bytes _ python 31.7 27.9 4.2 7.6
broome palindrome bytes _ bash 231.1 218.4 13.0 3.6
broome palindrome bytes _ osh_eval.opt.stripped 435.7 359.7 76.3 235.9
broome palindrome unicode _ python 35.0 31.3 4.1 7.4
broome palindrome unicode _ bash 264.4 264.9 0.0 3.5
broome palindrome unicode _ osh_eval.opt.stripped 416.8 295.6 121.5 235.8
broome parse_help ls _ osh_eval.opt.stripped 42.3 25.9 16.6 10.6
broome parse_help ls _ bash 35.3 30.4 5.2 3.8
broome parse_help ls-short _ bash 14.3 13.6 1.0 3.6
broome parse_help ls-short _ osh_eval.opt.stripped 15.2 15.6 0.0 5.4
broome parse_help mypy _ osh_eval.opt.stripped 51.5 25.6 26.1 12.9
broome parse_help mypy _ bash 38.2 26.4 12.2 3.8
broome word_freq 10 configure python 30.6 22.9 9.6 7.4
broome word_freq 10 configure osh_eval.opt.stripped 154.5 116.1 40.6 64.3
broome word_freq 10 configure bash 164.6 159.1 11.2 3.6
spring bubble_sort bytes 200 python 29.0 22.2 7.2 7.2
spring bubble_sort bytes 200 osh_eval.opt.stripped 367.9 292.2 76.1 169.8
spring bubble_sort bytes 200 bash 408.8 405.2 4.0 3.6
spring bubble_sort int 200 python 60.5 49.1 11.8 7.2
spring bubble_sort int 200 osh_eval.opt.stripped 352.1 300.4 52.1 154.3
spring bubble_sort int 200 bash 365.7 362.9 3.3 3.6
spring fib 200 44 python 15.5 7.8 7.8 7.4
spring fib 200 44 dash 37.3 37.3 0.0 1.7
spring fib 200 44 bash 110.5 110.5 0.0 3.3
spring fib 200 44 osh_eval.opt.stripped 170.4 126.8 43.6 101.8
spring hello _ _ dash 1.1 1.0 0.0 1.7
spring hello _ _ bash 2.1 2.0 0.0 3.3
spring hello _ _ osh_eval.opt.stripped 2.9 2.9 0.0 4.3
spring hello _ _ python 16.3 12.2 4.1 7.2
spring palindrome bytes _ python 27.2 20.7 6.9 7.3
spring palindrome bytes _ bash 247.6 228.2 19.8 3.6
spring palindrome bytes _ osh_eval.opt.stripped 428.6 329.2 99.7 235.9
spring palindrome unicode _ python 33.3 25.9 7.8 7.5
spring palindrome unicode _ bash 244.2 223.3 21.4 3.6
spring palindrome unicode _ osh_eval.opt.stripped 424.9 331.4 93.9 235.9
spring parse_help ls _ osh_eval.opt.stripped 42.9 32.1 11.1 10.6
spring parse_help ls _ bash 36.8 33.3 3.8 3.9
spring parse_help ls-short _ osh_eval.opt.stripped 13.9 8.1 6.0 5.3
spring parse_help ls-short _ bash 13.1 12.6 0.8 3.8
spring parse_help mypy _ bash 40.0 37.5 2.7 3.8
spring parse_help mypy _ osh_eval.opt.stripped 52.9 45.1 8.0 13.0
spring word_freq 10 configure python 32.4 19.5 15.1 7.4
spring word_freq 10 configure osh_eval.opt.stripped 160.9 118.9 44.0 64.6
spring word_freq 10 configure bash 156.2 138.3 23.8 3.6