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
flanders _ _ bash 2.5 0.0 2.3 3.1
flanders _ _ dash 1.2 1.2 0.0 1.7
flanders _ _ osh_eval.opt.stripped 3.3 3.3 0.0 4.0
flanders _ _ python 20.8 18.8 0.0 7.0
lisa _ _ osh_eval.opt.stripped 1.2 0.0 1.2 3.8
lisa _ _ dash 0.6 0.6 0.0 1.5
lisa _ _ bash 0.8 0.8 0.0 3.1
lisa _ _ python 7.3 3.6 3.6 6.9

fibonacci (integers)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders 200 44 python 22.7 8.3 12.4 6.9
flanders 200 44 dash 53.3 53.2 0.0 1.7
flanders 200 44 bash 243.8 235.6 8.0 3.1
flanders 200 44 osh_eval.opt.stripped 294.3 254.5 39.8 98.9
lisa 200 44 python 8.2 8.1 0.0 6.9
lisa 200 44 dash 22.1 22.0 0.0 1.7
lisa 200 44 bash 73.8 64.8 7.6 3.1
lisa 200 44 osh_eval.opt.stripped 104.1 80.1 24.0 98.9

word_freq (associative arrays / hash tables)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders 10 configure python 49.3 41.1 9.6 7.0
flanders 10 configure osh_eval.opt.stripped 225.2 162.5 65.5 63.6
flanders 10 configure bash 296.8 285.7 18.2 3.4
lisa 10 configure python 16.0 13.3 3.6 7.2
lisa 10 configure osh_eval.opt.stripped 91.3 73.9 16.1 63.6
lisa 10 configure bash 104.5 99.8 6.8 3.5

parse_help (strings, real code)

host name arg1 runtime elapsed ms user ms sys ms max rss MB
flanders ls osh_eval.opt.stripped 58.9 37.1 22.2 10.6
flanders ls bash 43.2 39.4 4.0 3.6
flanders ls-short osh_eval.opt.stripped 20.2 9.9 10.6 5.0
flanders ls-short bash 19.0 19.1 0.0 3.5
flanders mypy bash 52.0 49.1 3.0 3.8
flanders mypy osh_eval.opt.stripped 77.7 58.9 19.1 13.0
lisa ls bash 15.5 15.4 0.0 3.7
lisa ls osh_eval.opt.stripped 23.4 15.6 7.9 10.5
lisa ls-short bash 7.0 5.2 0.0 3.5
lisa ls-short osh_eval.opt.stripped 5.6 5.4 0.4 4.9
lisa mypy bash 19.1 12.2 6.8 3.6
lisa mypy osh_eval.opt.stripped 27.2 21.1 6.1 13.0

bubble_sort (array of integers, arrays of strings)

host name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders bytes 200 python 41.6 34.8 7.2 6.8
flanders bytes 200 osh_eval.opt.stripped 585.6 534.0 52.0 156.8
flanders bytes 200 bash 764.9 757.8 7.6 3.4
flanders int 200 python 87.4 79.0 6.9 6.8
flanders int 200 osh_eval.opt.stripped 578.3 500.3 78.3 147.9
flanders int 200 bash 754.7 746.4 8.6 3.3
lisa bytes 200 python 15.3 15.0 0.4 7.0
lisa bytes 200 osh_eval.opt.stripped 226.0 180.1 41.8 156.0
lisa bytes 200 bash 267.6 267.7 0.0 3.3
lisa int 200 python 32.9 33.0 0.0 7.0
lisa int 200 osh_eval.opt.stripped 221.6 182.1 34.3 143.7
lisa int 200 bash 257.7 253.9 4.0 3.3

Interpreter and Host Details

shell label shell id
bash bash-d685a43c
dash dash-2887d9e6
oil-native osh_eval.opt.stripped-9c917933
python python-e4b9f5ce
host label host id
flanders flanders-f9790abf
lisa lisa-f9790abf

Details

host name task name arg1 arg2 runtime elapsed ms user ms sys ms max rss MB
flanders bubble_sort bytes 200 python 41.6 34.8 7.2 6.8
flanders bubble_sort bytes 200 osh_eval.opt.stripped 585.6 534.0 52.0 156.8
flanders bubble_sort bytes 200 bash 764.9 757.8 7.6 3.4
flanders bubble_sort int 200 python 87.4 79.0 6.9 6.8
flanders bubble_sort int 200 osh_eval.opt.stripped 578.3 500.3 78.3 147.9
flanders bubble_sort int 200 bash 754.7 746.4 8.6 3.3
flanders fib 200 44 python 22.7 8.3 12.4 6.9
flanders fib 200 44 dash 53.3 53.2 0.0 1.7
flanders fib 200 44 bash 243.8 235.6 8.0 3.1
flanders fib 200 44 osh_eval.opt.stripped 294.3 254.5 39.8 98.9
flanders hello _ _ bash 2.5 0.0 2.3 3.1
flanders hello _ _ dash 1.2 1.2 0.0 1.7
flanders hello _ _ osh_eval.opt.stripped 3.3 3.3 0.0 4.0
flanders hello _ _ python 20.8 18.8 0.0 7.0
flanders palindrome bytes _ python 43.3 33.6 10.2 7.1
flanders palindrome bytes _ bash 493.4 465.2 28.8 3.3
flanders palindrome bytes _ osh_eval.opt.stripped 797.6 659.8 136.2 230.9
flanders palindrome unicode _ python 56.4 49.1 7.7 7.1
flanders palindrome unicode _ bash 506.0 489.3 17.0 3.4
flanders palindrome unicode _ osh_eval.opt.stripped 801.6 653.9 148.2 230.9
flanders parse_help ls _ osh_eval.opt.stripped 58.9 37.1 22.2 10.6
flanders parse_help ls _ bash 43.2 39.4 4.0 3.6
flanders parse_help ls-short _ osh_eval.opt.stripped 20.2 9.9 10.6 5.0
flanders parse_help ls-short _ bash 19.0 19.1 0.0 3.5
flanders parse_help mypy _ bash 52.0 49.1 3.0 3.8
flanders parse_help mypy _ osh_eval.opt.stripped 77.7 58.9 19.1 13.0
flanders word_freq 10 configure python 49.3 41.1 9.6 7.0
flanders word_freq 10 configure osh_eval.opt.stripped 225.2 162.5 65.5 63.6
flanders word_freq 10 configure bash 296.8 285.7 18.2 3.4
lisa bubble_sort bytes 200 python 15.3 15.0 0.4 7.0
lisa bubble_sort bytes 200 osh_eval.opt.stripped 226.0 180.1 41.8 156.0
lisa bubble_sort bytes 200 bash 267.6 267.7 0.0 3.3
lisa bubble_sort int 200 python 32.9 33.0 0.0 7.0
lisa bubble_sort int 200 osh_eval.opt.stripped 221.6 182.1 34.3 143.7
lisa bubble_sort int 200 bash 257.7 253.9 4.0 3.3
lisa fib 200 44 python 8.2 8.1 0.0 6.9
lisa fib 200 44 dash 22.1 22.0 0.0 1.7
lisa fib 200 44 bash 73.8 64.8 7.6 3.1
lisa fib 200 44 osh_eval.opt.stripped 104.1 80.1 24.0 98.9
lisa hello _ _ osh_eval.opt.stripped 1.2 0.0 1.2 3.8
lisa hello _ _ dash 0.6 0.6 0.0 1.5
lisa hello _ _ bash 0.8 0.8 0.0 3.1
lisa hello _ _ python 7.3 3.6 3.6 6.9
lisa palindrome bytes _ python 14.5 11.1 3.6 7.0
lisa palindrome bytes _ bash 165.9 165.7 0.3 3.4
lisa palindrome bytes _ osh_eval.opt.stripped 268.7 196.8 72.1 231.1
lisa palindrome unicode _ python 19.8 16.1 3.8 7.2
lisa palindrome unicode _ bash 183.8 161.0 22.9 3.4
lisa palindrome unicode _ osh_eval.opt.stripped 256.2 200.3 51.5 230.9
lisa parse_help ls _ bash 15.5 15.4 0.0 3.7
lisa parse_help ls _ osh_eval.opt.stripped 23.4 15.6 7.9 10.5
lisa parse_help ls-short _ bash 7.0 5.2 0.0 3.5
lisa parse_help ls-short _ osh_eval.opt.stripped 5.6 5.4 0.4 4.9
lisa parse_help mypy _ bash 19.1 12.2 6.8 3.6
lisa parse_help mypy _ osh_eval.opt.stripped 27.2 21.1 6.1 13.0
lisa word_freq 10 configure python 16.0 13.3 3.6 7.2
lisa word_freq 10 configure osh_eval.opt.stripped 91.3 73.9 16.1 63.6
lisa word_freq 10 configure bash 104.5 99.8 6.8 3.5