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 0.0 1.1 1.7
broome _ _ bash 2.1 2.0 0.0 3.4
broome _ _ osh_eval.opt.stripped 2.4 2.4 0.0 4.1
broome _ _ python 14.0 13.9 0.0 7.2
spring _ _ bash 2.0 0.0 2.0 3.4
spring _ _ osh_eval.opt.stripped 2.9 0.0 2.8 4.2
spring _ _ dash 1.1 1.0 0.0 1.7
spring _ _ python 14.7 3.7 11.0 7.2

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
broome 200 44 python 14.9 14.9 0.0 7.4
broome 200 44 dash 36.6 36.6 0.0 1.7
broome 200 44 bash 111.4 111.4 0.0 3.4
broome 200 44 osh_eval.opt.stripped 174.0 114.7 59.3 99.9
spring 200 44 python 18.4 14.7 3.7 7.3
spring 200 44 dash 40.0 36.0 4.0 1.7
spring 200 44 osh_eval.opt.stripped 152.2 100.1 52.1 99.8
spring 200 44 bash 110.2 110.2 0.0 3.4

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.0 25.2 8.9 7.4
broome 10 configure osh_eval.opt.stripped 147.8 102.2 47.7 65.0
broome 10 configure bash 171.2 152.9 24.2 3.6
spring 10 configure python 32.6 13.6 21.0 7.6
spring 10 configure osh_eval.opt.stripped 151.3 88.6 64.7 65.0
spring 10 configure bash 156.1 144.5 18.0 3.5

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
broome ls bash 31.8 24.7 7.4 3.7
broome ls osh_eval.opt.stripped 37.3 29.9 7.7 10.9
broome ls-short bash 12.9 8.4 4.8 3.6
broome ls-short osh_eval.opt.stripped 14.1 12.0 2.5 5.3
broome mypy osh_eval.opt.stripped 54.1 35.6 18.8 13.4
broome mypy bash 39.1 39.4 0.0 3.6
spring ls bash 35.7 27.4 8.6 3.7
spring ls osh_eval.opt.stripped 40.4 29.2 11.5 11.0
spring ls-short bash 13.1 13.4 0.0 3.9
spring ls-short osh_eval.opt.stripped 14.2 13.5 0.9 5.3
spring mypy bash 40.9 29.1 12.1 3.8
spring mypy osh_eval.opt.stripped 51.8 44.2 7.9 13.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 python 31.2 24.8 6.8 7.2
broome bytes 200 osh_eval.opt.stripped 340.4 269.0 71.7 165.4
broome bytes 200 bash 397.2 397.6 0.0 3.5
broome int 200 python 52.5 43.4 9.4 7.2
broome int 200 osh_eval.opt.stripped 348.4 322.5 26.2 150.1
broome int 200 bash 398.9 392.5 6.8 3.6
spring bytes 200 python 29.0 17.9 11.6 7.3
spring bytes 200 osh_eval.opt.stripped 295.4 234.7 61.3 145.2
spring bytes 200 bash 356.9 353.1 4.0 3.6
spring int 200 python 57.1 49.4 8.0 7.2
spring int 200 osh_eval.opt.stripped 325.8 237.4 88.7 153.8
spring int 200 bash 417.6 414.1 4.0 3.5

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
oil-native osh_eval.opt.stripped-bbc52eb6
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 31.2 24.8 6.8 7.2
broome bubble_sort bytes 200 osh_eval.opt.stripped 340.4 269.0 71.7 165.4
broome bubble_sort bytes 200 bash 397.2 397.6 0.0 3.5
broome bubble_sort int 200 python 52.5 43.4 9.4 7.2
broome bubble_sort int 200 osh_eval.opt.stripped 348.4 322.5 26.2 150.1
broome bubble_sort int 200 bash 398.9 392.5 6.8 3.6
broome fib 200 44 python 14.9 14.9 0.0 7.4
broome fib 200 44 dash 36.6 36.6 0.0 1.7
broome fib 200 44 bash 111.4 111.4 0.0 3.4
broome fib 200 44 osh_eval.opt.stripped 174.0 114.7 59.3 99.9
broome hello _ _ dash 1.1 0.0 1.1 1.7
broome hello _ _ bash 2.1 2.0 0.0 3.4
broome hello _ _ osh_eval.opt.stripped 2.4 2.4 0.0 4.1
broome hello _ _ python 14.0 13.9 0.0 7.2
broome palindrome bytes _ python 31.9 32.3 0.0 7.5
broome palindrome bytes _ bash 250.0 222.5 27.7 3.6
broome palindrome bytes _ osh_eval.opt.stripped 438.1 326.5 111.9 232.4
broome palindrome unicode _ python 35.5 27.8 8.1 7.5
broome palindrome unicode _ bash 253.1 243.4 10.1 3.6
broome palindrome unicode _ osh_eval.opt.stripped 434.2 330.9 103.8 232.3
broome parse_help ls _ bash 31.8 24.7 7.4 3.7
broome parse_help ls _ osh_eval.opt.stripped 37.3 29.9 7.7 10.9
broome parse_help ls-short _ bash 12.9 8.4 4.8 3.6
broome parse_help ls-short _ osh_eval.opt.stripped 14.1 12.0 2.5 5.3
broome parse_help mypy _ osh_eval.opt.stripped 54.1 35.6 18.8 13.4
broome parse_help mypy _ bash 39.1 39.4 0.0 3.6
broome word_freq 10 configure python 32.0 25.2 8.9 7.4
broome word_freq 10 configure osh_eval.opt.stripped 147.8 102.2 47.7 65.0
broome word_freq 10 configure bash 171.2 152.9 24.2 3.6
spring bubble_sort bytes 200 python 29.0 17.9 11.6 7.3
spring bubble_sort bytes 200 osh_eval.opt.stripped 295.4 234.7 61.3 145.2
spring bubble_sort bytes 200 bash 356.9 353.1 4.0 3.6
spring bubble_sort int 200 python 57.1 49.4 8.0 7.2
spring bubble_sort int 200 osh_eval.opt.stripped 325.8 237.4 88.7 153.8
spring bubble_sort int 200 bash 417.6 414.1 4.0 3.5
spring fib 200 44 python 18.4 14.7 3.7 7.3
spring fib 200 44 dash 40.0 36.0 4.0 1.7
spring fib 200 44 osh_eval.opt.stripped 152.2 100.1 52.1 99.8
spring fib 200 44 bash 110.2 110.2 0.0 3.4
spring hello _ _ bash 2.0 0.0 2.0 3.4
spring hello _ _ osh_eval.opt.stripped 2.9 0.0 2.8 4.2
spring hello _ _ dash 1.1 1.0 0.0 1.7
spring hello _ _ python 14.7 3.7 11.0 7.2
spring palindrome bytes _ python 29.7 16.5 13.5 7.6
spring palindrome bytes _ bash 223.0 194.7 28.7 3.7
spring palindrome bytes _ osh_eval.opt.stripped 437.1 341.7 95.7 232.5
spring palindrome unicode _ python 30.4 28.1 2.5 7.5
spring palindrome unicode _ bash 284.1 261.7 22.7 3.6
spring palindrome unicode _ osh_eval.opt.stripped 403.5 307.5 96.4 232.4
spring parse_help ls _ bash 35.7 27.4 8.6 3.7
spring parse_help ls _ osh_eval.opt.stripped 40.4 29.2 11.5 11.0
spring parse_help ls-short _ bash 13.1 13.4 0.0 3.9
spring parse_help ls-short _ osh_eval.opt.stripped 14.2 13.5 0.9 5.3
spring parse_help mypy _ bash 40.9 29.1 12.1 3.8
spring parse_help mypy _ osh_eval.opt.stripped 51.8 44.2 7.9 13.4
spring word_freq 10 configure python 32.6 13.6 21.0 7.6
spring word_freq 10 configure osh_eval.opt.stripped 151.3 88.6 64.7 65.0
spring word_freq 10 configure bash 156.1 144.5 18.0 3.5