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 label elapsed ms user ms sys ms max rss MB
broome _ _ opt/osh_eval 3 0 3 4.4
broome _ _ dash 1 1 0 1.7
broome _ _ bash 2 2 0 3.2
broome _ _ python2 14 9 5 7.3
lenny _ _ opt/osh_eval 1 0 1 4.6
lenny _ _ dash 1 0 0 1.7
lenny _ _ bash 1 1 0 3.4
lenny _ _ python2 6 3 3 7.4

fibonacci (integers)

host name arg1 arg2 runtime label elapsed ms user ms sys ms max rss MB
broome 200 44 python2 17 17 0 7.4
broome 200 44 dash 41 41 0 1.8
broome 200 44 bash 109 105 4 3.4
broome 200 44 opt/osh_eval 444 432 12 25.6
lenny 200 44 python2 7 7 0 7.4
lenny 200 44 dash 18 18 0 1.8
lenny 200 44 bash 69 69 0 3.3
lenny 200 44 opt/osh_eval 407 403 4 25.6

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime label elapsed ms user ms sys ms max rss MB
broome 10 configure python2 34 35 1 7.4
broome 10 configure bash 180 176 9 3.6
broome 10 configure opt/osh_eval 381 358 30 33.0
lenny 10 configure python2 14 15 0 7.5
lenny 10 configure bash 100 95 8 3.6
lenny 10 configure opt/osh_eval 288 276 14 33.1

parse_help (strings, real code)

host name arg1 runtime label elapsed ms user ms sys ms max rss MB
broome ls bash 36 34 2 3.7
broome ls opt/osh_eval 76 68 8 21.6
broome ls-short bash 17 16 1 3.8
broome ls-short opt/osh_eval 21 16 5 6.2
broome mypy bash 45 45 1 3.8
broome mypy opt/osh_eval 85 52 33 21.6
lenny ls bash 18 18 0 3.8
lenny ls opt/osh_eval 41 37 4 21.4
lenny ls-short bash 8 8 0 3.8
lenny ls-short opt/osh_eval 8 8 0 6.3
lenny mypy bash 21 21 0 3.7
lenny mypy opt/osh_eval 49 45 4 21.8

bubble_sort (array of integers, arrays of strings)

host name arg1 arg2 runtime label elapsed ms user ms sys ms max rss MB
broome bytes 200 python2 37 30 7 7.2
broome bytes 200 bash 388 388 1 3.6
broome bytes 200 opt/osh_eval 1,045 1,034 12 33.7
broome int 200 python2 63 50 13 7.2
broome int 200 bash 406 402 4 3.7
broome int 200 opt/osh_eval 984 949 35 37.7
lenny bytes 200 python2 14 13 2 7.3
lenny bytes 200 bash 261 260 2 3.7
lenny bytes 200 opt/osh_eval 1,013 994 19 33.8
lenny int 200 python2 30 30 0 7.3
lenny int 200 bash 266 266 0 3.7
lenny int 200 opt/osh_eval 919 907 12 37.5

Interpreter and Host Details

shell label shell id
bash bash-9af8f89f
dash dash-9ff48631
opt/osh_eval /home/andy/git/oilshell/oil/../benchmark-data/src/oil-native-0.13.1/_bin/cxx-opt-sh/osh_eval.stripped-30cde83a
python2 python2-e809d907
host label host id
broome broome-7a69aabc
lenny lenny-3063f657

Details

host name task name arg1 arg2 runtime label elapsed ms user ms sys ms max rss MB
broome bubble_sort bytes 200 python2 37 30 7 7.2
broome bubble_sort bytes 200 bash 388 388 1 3.6
broome bubble_sort bytes 200 opt/osh_eval 1,045 1,034 12 33.7
broome bubble_sort int 200 python2 63 50 13 7.2
broome bubble_sort int 200 bash 406 402 4 3.7
broome bubble_sort int 200 opt/osh_eval 984 949 35 37.7
broome fib 200 44 python2 17 17 0 7.4
broome fib 200 44 dash 41 41 0 1.8
broome fib 200 44 bash 109 105 4 3.4
broome fib 200 44 opt/osh_eval 444 432 12 25.6
broome hello _ _ opt/osh_eval 3 0 3 4.4
broome hello _ _ dash 1 1 0 1.7
broome hello _ _ bash 2 2 0 3.2
broome hello _ _ python2 14 9 5 7.3
broome palindrome bytes _ python2 35 30 5 7.4
broome palindrome bytes _ bash 204 190 14 3.6
broome palindrome bytes _ opt/osh_eval 965 937 29 20.8
broome palindrome unicode _ python2 35 24 11 7.6
broome palindrome unicode _ bash 264 243 22 3.7
broome palindrome unicode _ opt/osh_eval 978 915 62 20.7
broome parse_help ls _ bash 36 34 2 3.7
broome parse_help ls _ opt/osh_eval 76 68 8 21.6
broome parse_help ls-short _ bash 17 16 1 3.8
broome parse_help ls-short _ opt/osh_eval 21 16 5 6.2
broome parse_help mypy _ bash 45 45 1 3.8
broome parse_help mypy _ opt/osh_eval 85 52 33 21.6
broome word_freq 10 configure python2 34 35 1 7.4
broome word_freq 10 configure bash 180 176 9 3.6
broome word_freq 10 configure opt/osh_eval 381 358 30 33.0
lenny bubble_sort bytes 200 python2 14 13 2 7.3
lenny bubble_sort bytes 200 bash 261 260 2 3.7
lenny bubble_sort bytes 200 opt/osh_eval 1,013 994 19 33.8
lenny bubble_sort int 200 python2 30 30 0 7.3
lenny bubble_sort int 200 bash 266 266 0 3.7
lenny bubble_sort int 200 opt/osh_eval 919 907 12 37.5
lenny fib 200 44 python2 7 7 0 7.4
lenny fib 200 44 dash 18 18 0 1.8
lenny fib 200 44 bash 69 69 0 3.3
lenny fib 200 44 opt/osh_eval 407 403 4 25.6
lenny hello _ _ opt/osh_eval 1 0 1 4.6
lenny hello _ _ dash 1 0 0 1.7
lenny hello _ _ bash 1 1 0 3.4
lenny hello _ _ python2 6 3 3 7.4
lenny palindrome bytes _ python2 18 12 6 7.5
lenny palindrome bytes _ bash 164 148 16 3.6
lenny palindrome bytes _ opt/osh_eval 804 781 24 20.7
lenny palindrome unicode _ python2 15 15 0 7.7
lenny palindrome unicode _ bash 183 183 0 3.6
lenny palindrome unicode _ opt/osh_eval 800 785 16 20.9
lenny parse_help ls _ bash 18 18 0 3.8
lenny parse_help ls _ opt/osh_eval 41 37 4 21.4
lenny parse_help ls-short _ bash 8 8 0 3.8
lenny parse_help ls-short _ opt/osh_eval 8 8 0 6.3
lenny parse_help mypy _ bash 21 21 0 3.7
lenny parse_help mypy _ opt/osh_eval 49 45 4 21.8
lenny word_freq 10 configure python2 14 15 0 7.5
lenny word_freq 10 configure bash 100 95 8 3.6
lenny word_freq 10 configure opt/osh_eval 288 276 14 33.1