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.1 2.0 0.0 3.2
broome _ _ osh_eval.opt.stripped 2.8 2.8 0.0 4.3
broome _ _ python 16.0 12.0 4.0 7.2
spring _ _ dash 1.1 1.0 0.0 1.8
spring _ _ bash 2.1 2.1 0.0 3.5
spring _ _ osh_eval.opt.stripped 2.8 2.8 0.0 4.3
spring _ _ python 17.3 12.9 4.3 7.3

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python 18.1 10.8 7.2 7.3
broome 200 44 dash 39.3 39.2 0.0 1.8
broome 200 44 bash 97.9 97.8 0.0 3.4
broome 200 44 osh_eval.opt.stripped 171.8 147.8 24.0 101.6
spring 200 44 python 15.2 10.1 5.1 7.2
spring 200 44 dash 36.9 36.9 0.0 1.7
spring 200 44 bash 106.3 106.2 0.0 3.3
spring 200 44 osh_eval.opt.stripped 176.7 124.5 52.2 101.5

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 10 configure python 32.9 30.8 4.1 7.4
broome 10 configure osh_eval.opt.stripped 156.1 118.0 39.9 65.3
broome 10 configure bash 157.5 150.3 13.2 3.6
spring 10 configure python 34.0 23.6 12.5 7.3
spring 10 configure osh_eval.opt.stripped 148.7 114.1 36.5 65.2
spring 10 configure bash 165.1 162.9 8.0 3.7

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
broome ls bash 33.9 26.0 8.2 3.7
broome ls osh_eval.opt.stripped 42.4 30.7 11.9 11.0
broome ls-short osh_eval.opt.stripped 14.3 9.3 5.3 5.3
broome ls-short bash 13.1 9.7 3.7 3.7
broome mypy bash 41.1 31.3 10.1 3.8
broome mypy osh_eval.opt.stripped 53.4 45.5 8.3 13.5
spring ls osh_eval.opt.stripped 42.1 27.7 14.7 11.0
spring ls bash 34.1 33.4 1.0 3.8
spring ls-short osh_eval.opt.stripped 14.3 4.6 10.1 5.6
spring ls-short bash 13.2 13.5 0.0 3.7
spring mypy bash 34.9 33.8 1.3 3.9
spring mypy osh_eval.opt.stripped 51.9 36.9 15.3 13.5

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 28.1 17.7 10.8 7.2
broome bytes 200 osh_eval.opt.stripped 367.5 314.9 52.8 166.4
broome bytes 200 bash 399.2 391.8 7.8 3.7
broome int 200 python 52.1 38.2 14.4 7.2
broome int 200 osh_eval.opt.stripped 304.1 272.6 31.8 140.9
broome int 200 bash 388.3 384.1 4.6 3.5
spring bytes 200 python 29.2 12.3 17.2 7.3
spring bytes 200 osh_eval.opt.stripped 373.8 298.3 75.8 165.8
spring bytes 200 bash 400.9 400.0 1.3 3.6
spring int 200 python 55.6 53.8 2.1 7.2
spring int 200 osh_eval.opt.stripped 335.3 279.8 55.8 146.3
spring int 200 bash 394.2 390.7 4.0 3.5

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.opt.stripped-145143a1
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 28.1 17.7 10.8 7.2
broome bubble_sort bytes 200 osh_eval.opt.stripped 367.5 314.9 52.8 166.4
broome bubble_sort bytes 200 bash 399.2 391.8 7.8 3.7
broome bubble_sort int 200 python 52.1 38.2 14.4 7.2
broome bubble_sort int 200 osh_eval.opt.stripped 304.1 272.6 31.8 140.9
broome bubble_sort int 200 bash 388.3 384.1 4.6 3.5
broome fib 200 44 python 18.1 10.8 7.2 7.3
broome fib 200 44 dash 39.3 39.2 0.0 1.8
broome fib 200 44 bash 97.9 97.8 0.0 3.4
broome fib 200 44 osh_eval.opt.stripped 171.8 147.8 24.0 101.6
broome hello _ _ dash 1.1 1.1 0.0 1.8
broome hello _ _ bash 2.1 2.0 0.0 3.2
broome hello _ _ osh_eval.opt.stripped 2.8 2.8 0.0 4.3
broome hello _ _ python 16.0 12.0 4.0 7.2
broome palindrome bytes _ python 30.7 27.0 4.1 7.4
broome palindrome bytes _ bash 228.8 216.6 12.6 3.6
broome palindrome bytes _ osh_eval.opt.stripped 446.4 325.4 121.4 237.2
broome palindrome unicode _ python 33.7 17.1 17.0 7.6
broome palindrome unicode _ bash 263.4 247.7 16.1 3.6
broome palindrome unicode _ osh_eval.opt.stripped 438.2 309.2 129.4 237.3
broome parse_help ls _ bash 33.9 26.0 8.2 3.7
broome parse_help ls _ osh_eval.opt.stripped 42.4 30.7 11.9 11.0
broome parse_help ls-short _ osh_eval.opt.stripped 14.3 9.3 5.3 5.3
broome parse_help ls-short _ bash 13.1 9.7 3.7 3.7
broome parse_help mypy _ bash 41.1 31.3 10.1 3.8
broome parse_help mypy _ osh_eval.opt.stripped 53.4 45.5 8.3 13.5
broome word_freq 10 configure python 32.9 30.8 4.1 7.4
broome word_freq 10 configure osh_eval.opt.stripped 156.1 118.0 39.9 65.3
broome word_freq 10 configure bash 157.5 150.3 13.2 3.6
spring bubble_sort bytes 200 python 29.2 12.3 17.2 7.3
spring bubble_sort bytes 200 osh_eval.opt.stripped 373.8 298.3 75.8 165.8
spring bubble_sort bytes 200 bash 400.9 400.0 1.3 3.6
spring bubble_sort int 200 python 55.6 53.8 2.1 7.2
spring bubble_sort int 200 osh_eval.opt.stripped 335.3 279.8 55.8 146.3
spring bubble_sort int 200 bash 394.2 390.7 4.0 3.5
spring fib 200 44 python 15.2 10.1 5.1 7.2
spring fib 200 44 dash 36.9 36.9 0.0 1.7
spring fib 200 44 bash 106.3 106.2 0.0 3.3
spring fib 200 44 osh_eval.opt.stripped 176.7 124.5 52.2 101.5
spring hello _ _ dash 1.1 1.0 0.0 1.8
spring hello _ _ bash 2.1 2.1 0.0 3.5
spring hello _ _ osh_eval.opt.stripped 2.8 2.8 0.0 4.3
spring hello _ _ python 17.3 12.9 4.3 7.3
spring palindrome bytes _ python 32.4 21.5 11.2 7.5
spring palindrome bytes _ bash 274.6 262.9 12.0 3.6
spring palindrome bytes _ osh_eval.opt.stripped 461.1 367.6 93.8 237.2
spring palindrome unicode _ python 33.6 33.0 0.9 7.4
spring palindrome unicode _ bash 306.2 273.8 32.7 3.6
spring palindrome unicode _ osh_eval.opt.stripped 456.8 359.4 97.7 237.3
spring parse_help ls _ osh_eval.opt.stripped 42.1 27.7 14.7 11.0
spring parse_help ls _ bash 34.1 33.4 1.0 3.8
spring parse_help ls-short _ osh_eval.opt.stripped 14.3 4.6 10.1 5.6
spring parse_help ls-short _ bash 13.2 13.5 0.0 3.7
spring parse_help mypy _ bash 34.9 33.8 1.3 3.9
spring parse_help mypy _ osh_eval.opt.stripped 51.9 36.9 15.3 13.5
spring word_freq 10 configure python 34.0 23.6 12.5 7.3
spring word_freq 10 configure osh_eval.opt.stripped 148.7 114.1 36.5 65.2
spring word_freq 10 configure bash 165.1 162.9 8.0 3.7