oilshell.org
OSH Runtime Performance
Source code: benchmarks/osh-runtime.sh
Raw files
Elapsed Time by Shell (milliseconds)
Some benchmarks call many external tools, while some exercise the shell
interpreter itself.
workload |
host name |
bash |
dash |
osh-cpython |
osh-native |
osh-native-souffle |
py bash ratio |
native bash ratio |
abuild-print-help |
no-host |
18 |
9 |
460 |
21 |
21 |
24.97 |
1.15 |
bin-true |
no-host |
648 |
524 |
2,258 |
803 |
792 |
3.48 |
1.24 |
configure.cpython |
no-host |
14,707 |
14,763 |
28,102 |
14,921 |
14,824 |
1.91 |
1.01 |
configure.ocaml |
no-host |
3,731 |
3,666 |
4,621 |
3,785 |
3,736 |
1.24 |
1.01 |
configure.tcc |
no-host |
46 |
40 |
194 |
48 |
47 |
4.20 |
1.04 |
configure.util-linux |
no-host |
13,581 |
14,444 |
30,659 |
13,913 |
13,888 |
2.26 |
1.02 |
configure.yash |
no-host |
1,794 |
1,720 |
2,457 |
1,786 |
1,783 |
1.37 |
1.00 |
hello-world |
no-host |
1 |
1 |
49 |
3 |
3 |
38.89 |
2.19 |
Minor Page Faults
workload |
host name |
bash |
dash |
osh-cpython |
osh-native |
osh-native-souffle |
py bash ratio |
native bash ratio |
abuild-print-help |
no-host |
2,512 |
1,074 |
23,330 |
3,166 |
3,136 |
9.29 |
1.26 |
bin-true |
no-host |
106,388 |
66,411 |
762,309 |
126,160 |
127,185 |
7.17 |
1.19 |
configure.cpython |
no-host |
1,992,694 |
2,022,376 |
5,980,241 |
2,007,428 |
1,996,514 |
3.00 |
1.01 |
configure.ocaml |
no-host |
373,328 |
353,662 |
606,232 |
376,226 |
375,945 |
1.62 |
1.01 |
configure.tcc |
no-host |
6,083 |
4,982 |
23,025 |
6,494 |
6,458 |
3.79 |
1.07 |
configure.util-linux |
no-host |
1,900,731 |
2,067,805 |
5,129,929 |
1,809,293 |
1,811,545 |
2.70 |
0.95 |
configure.yash |
no-host |
233,312 |
222,412 |
363,836 |
235,570 |
235,244 |
1.56 |
1.01 |
hello-world |
no-host |
147 |
76 |
3,707 |
350 |
341 |
25.22 |
2.38 |
Memory Usage (Max Resident Set Size in MB)
Memory usage is measured in MB (powers of 10), not MiB (powers of 2).
GC Stats
workload |
host name |
elapsed ms |
max gc millis |
total gc millis |
allocated MB |
max rss MB |
num allocated |
num live |
max survived |
num in heap |
num in pool 1 |
num in pool 2 |
num gc points |
num gc done |
gc threshold |
num growths |
hello-world |
no-host |
3 |
0 |
0 |
0.2 |
6.0 |
3,703 |
3,703 |
0 |
691 |
1,830 |
1,182 |
2 |
0 |
50,000 |
0 |
bin-true |
no-host |
803 |
1 |
2 |
2.6 |
8.0 |
154,668 |
12,902 |
2,804 |
9,741 |
78,299 |
66,628 |
3,008 |
3 |
50,000 |
0 |
configure.cpython |
no-host |
14,921 |
1 |
64 |
14.9 |
29.2 |
1,772,650 |
49,094 |
28,514 |
86,394 |
908,051 |
778,205 |
22,694 |
60 |
50,000 |
0 |
configure.util-linux |
no-host |
13,913 |
3 |
65 |
21.3 |
30.2 |
2,703,386 |
42,731 |
65,818 |
109,656 |
1,320,549 |
1,273,181 |
27,391 |
41 |
131,636 |
1 |
configure.ocaml |
no-host |
3,785 |
1 |
2 |
2.6 |
22.6 |
150,020 |
10,979 |
5,149 |
7,526 |
71,587 |
70,907 |
1,448 |
3 |
50,000 |
0 |
configure.tcc |
no-host |
48 |
0 |
0 |
1.3 |
19.5 |
30,509 |
30,509 |
0 |
1,517 |
14,754 |
14,238 |
226 |
0 |
50,000 |
0 |
configure.yash |
no-host |
1,786 |
1 |
2 |
2.6 |
26.4 |
139,677 |
7,947 |
6,606 |
6,333 |
70,259 |
63,085 |
1,803 |
3 |
50,000 |
0 |
abuild-print-help |
no-host |
21 |
1 |
2 |
2.8 |
8.9 |
116,252 |
64,457 |
42,667 |
4,568 |
54,499 |
57,185 |
270 |
3 |
85,334 |
1 |
hello-world |
no-host |
3 |
0 |
0 |
0.2 |
5.9 |
3,702 |
3,702 |
0 |
692 |
1,830 |
1,180 |
2 |
0 |
50,000 |
0 |
bin-true |
no-host |
792 |
1 |
2 |
2.6 |
7.9 |
154,667 |
12,767 |
2,742 |
9,742 |
78,299 |
66,626 |
3,008 |
3 |
50,000 |
0 |
configure.cpython |
no-host |
14,824 |
2 |
62 |
15.0 |
29.2 |
1,772,649 |
44,546 |
28,452 |
86,395 |
908,051 |
778,203 |
22,694 |
60 |
50,000 |
0 |
configure.util-linux |
no-host |
13,888 |
3 |
61 |
21.3 |
30.3 |
2,703,386 |
44,632 |
65,755 |
109,658 |
1,320,549 |
1,273,179 |
27,391 |
41 |
131,510 |
1 |
configure.ocaml |
no-host |
3,736 |
1 |
2 |
2.6 |
22.5 |
150,020 |
10,916 |
5,086 |
7,528 |
71,587 |
70,905 |
1,448 |
3 |
50,000 |
0 |
configure.tcc |
no-host |
47 |
0 |
0 |
1.3 |
19.6 |
30,509 |
30,509 |
0 |
1,519 |
14,754 |
14,236 |
226 |
0 |
50,000 |
0 |
configure.yash |
no-host |
1,783 |
1 |
2 |
2.6 |
26.4 |
139,677 |
7,885 |
6,544 |
6,335 |
70,259 |
63,083 |
1,803 |
3 |
50,000 |
0 |
abuild-print-help |
no-host |
21 |
1 |
2 |
2.8 |
8.7 |
116,251 |
64,395 |
42,605 |
4,569 |
54,499 |
57,183 |
270 |
3 |
85,210 |
1 |
rusage Details
task id |
host name |
workload |
elapsed ms |
user ms |
sys ms |
max rss MB |
shell label |
7 |
no-host |
abuild-print-help |
18 |
10 |
9 |
4.3 |
bash |
15 |
no-host |
abuild-print-help |
9 |
5 |
4 |
3.5 |
dash |
23 |
no-host |
abuild-print-help |
460 |
405 |
58 |
21.6 |
osh-cpython |
31 |
no-host |
abuild-print-help |
21 |
11 |
11 |
8.9 |
osh-native |
39 |
no-host |
abuild-print-help |
21 |
10 |
11 |
8.7 |
osh-native-souffle |
1 |
no-host |
bin-true |
648 |
302 |
381 |
2.9 |
bash |
9 |
no-host |
bin-true |
524 |
273 |
262 |
1.6 |
dash |
17 |
no-host |
bin-true |
2,258 |
742 |
1,779 |
17.6 |
osh-cpython |
25 |
no-host |
bin-true |
803 |
308 |
512 |
8.0 |
osh-native |
33 |
no-host |
bin-true |
792 |
302 |
507 |
7.9 |
osh-native-souffle |
2 |
no-host |
configure.cpython |
14,707 |
6,730 |
8,390 |
29.2 |
bash |
10 |
no-host |
configure.cpython |
14,763 |
6,737 |
8,419 |
29.2 |
dash |
18 |
no-host |
configure.cpython |
28,102 |
14,074 |
15,932 |
29.3 |
osh-cpython |
26 |
no-host |
configure.cpython |
14,921 |
6,617 |
8,591 |
29.2 |
osh-native |
34 |
no-host |
configure.cpython |
14,824 |
6,498 |
8,459 |
29.2 |
osh-native-souffle |
4 |
no-host |
configure.ocaml |
3,731 |
1,298 |
1,473 |
22.6 |
bash |
12 |
no-host |
configure.ocaml |
3,666 |
1,259 |
1,429 |
22.5 |
dash |
20 |
no-host |
configure.ocaml |
4,621 |
1,895 |
1,938 |
22.6 |
osh-cpython |
28 |
no-host |
configure.ocaml |
3,785 |
1,332 |
1,493 |
22.6 |
osh-native |
36 |
no-host |
configure.ocaml |
3,736 |
1,294 |
1,481 |
22.5 |
osh-native-souffle |
5 |
no-host |
configure.tcc |
46 |
21 |
26 |
19.7 |
bash |
13 |
no-host |
configure.tcc |
40 |
23 |
18 |
19.5 |
dash |
21 |
no-host |
configure.tcc |
194 |
129 |
69 |
19.5 |
osh-cpython |
29 |
no-host |
configure.tcc |
48 |
19 |
30 |
19.5 |
osh-native |
37 |
no-host |
configure.tcc |
47 |
24 |
23 |
19.6 |
osh-native-souffle |
3 |
no-host |
configure.util-linux |
13,581 |
5,899 |
8,177 |
30.3 |
bash |
11 |
no-host |
configure.util-linux |
14,444 |
5,923 |
9,045 |
30.3 |
dash |
19 |
no-host |
configure.util-linux |
30,659 |
17,437 |
14,345 |
30.2 |
osh-cpython |
27 |
no-host |
configure.util-linux |
13,913 |
5,603 |
8,532 |
30.2 |
osh-native |
35 |
no-host |
configure.util-linux |
13,888 |
5,507 |
8,560 |
30.3 |
osh-native-souffle |
6 |
no-host |
configure.yash |
1,794 |
900 |
902 |
26.2 |
bash |
14 |
no-host |
configure.yash |
1,720 |
874 |
851 |
26.4 |
dash |
22 |
no-host |
configure.yash |
2,457 |
1,320 |
1,183 |
26.3 |
osh-cpython |
30 |
no-host |
configure.yash |
1,786 |
891 |
901 |
26.4 |
osh-native |
38 |
no-host |
configure.yash |
1,783 |
920 |
867 |
26.4 |
osh-native-souffle |
0 |
no-host |
hello-world |
1 |
0 |
1 |
2.8 |
bash |
8 |
no-host |
hello-world |
1 |
1 |
0 |
1.4 |
dash |
16 |
no-host |
hello-world |
49 |
31 |
18 |
17.6 |
osh-cpython |
24 |
no-host |
hello-world |
3 |
3 |
0 |
6.0 |
osh-native |
32 |
no-host |
hello-world |
3 |
1 |
2 |
5.9 |
osh-native-souffle |
More Details
task id |
host name |
workload |
minor faults |
major faults |
swaps |
in block |
out block |
signals |
voluntary ctx |
involuntary ctx |
shell label |
7 |
no-host |
abuild-print-help |
2,512 |
0 |
0 |
0 |
16 |
0 |
40 |
2 |
bash |
15 |
no-host |
abuild-print-help |
1,074 |
0 |
0 |
0 |
8 |
0 |
39 |
0 |
dash |
23 |
no-host |
abuild-print-help |
23,330 |
0 |
0 |
0 |
8 |
0 |
45 |
8 |
osh-cpython |
31 |
no-host |
abuild-print-help |
3,166 |
0 |
0 |
0 |
16 |
0 |
39 |
1 |
osh-native |
39 |
no-host |
abuild-print-help |
3,136 |
0 |
0 |
0 |
16 |
0 |
39 |
5 |
osh-native-souffle |
1 |
no-host |
bin-true |
106,388 |
0 |
0 |
0 |
8 |
0 |
1,993 |
75 |
bash |
9 |
no-host |
bin-true |
66,411 |
0 |
0 |
0 |
8 |
0 |
1,987 |
118 |
dash |
17 |
no-host |
bin-true |
762,309 |
0 |
0 |
0 |
8 |
0 |
1,994 |
550 |
osh-cpython |
25 |
no-host |
bin-true |
126,160 |
0 |
0 |
0 |
16 |
0 |
1,985 |
375 |
osh-native |
33 |
no-host |
bin-true |
127,185 |
0 |
0 |
0 |
16 |
0 |
1,993 |
181 |
osh-native-souffle |
2 |
no-host |
configure.cpython |
1,992,694 |
1 |
0 |
0 |
32,928 |
0 |
14,238 |
1,243 |
bash |
10 |
no-host |
configure.cpython |
2,022,376 |
0 |
0 |
0 |
32,992 |
0 |
14,406 |
1,246 |
dash |
18 |
no-host |
configure.cpython |
5,980,241 |
0 |
0 |
0 |
27,512 |
0 |
13,035 |
1,343 |
osh-cpython |
26 |
no-host |
configure.cpython |
2,007,428 |
1 |
0 |
0 |
27,520 |
0 |
13,105 |
1,260 |
osh-native |
34 |
no-host |
configure.cpython |
1,996,514 |
0 |
0 |
0 |
27,520 |
0 |
13,029 |
1,183 |
osh-native-souffle |
4 |
no-host |
configure.ocaml |
373,328 |
0 |
0 |
0 |
5,120 |
0 |
1,953 |
206 |
bash |
12 |
no-host |
configure.ocaml |
353,662 |
0 |
0 |
0 |
5,112 |
0 |
1,940 |
197 |
dash |
20 |
no-host |
configure.ocaml |
606,232 |
1 |
0 |
0 |
5,112 |
0 |
1,850 |
197 |
osh-cpython |
28 |
no-host |
configure.ocaml |
376,226 |
0 |
0 |
0 |
5,120 |
0 |
1,911 |
247 |
osh-native |
36 |
no-host |
configure.ocaml |
375,945 |
0 |
0 |
0 |
5,120 |
0 |
1,923 |
242 |
osh-native-souffle |
5 |
no-host |
configure.tcc |
6,083 |
0 |
0 |
0 |
104 |
0 |
49 |
2 |
bash |
13 |
no-host |
configure.tcc |
4,982 |
0 |
0 |
0 |
96 |
0 |
47 |
1 |
dash |
21 |
no-host |
configure.tcc |
23,025 |
0 |
0 |
0 |
96 |
0 |
53 |
4 |
osh-cpython |
29 |
no-host |
configure.tcc |
6,494 |
0 |
0 |
0 |
104 |
0 |
47 |
4 |
osh-native |
37 |
no-host |
configure.tcc |
6,458 |
0 |
0 |
0 |
104 |
0 |
47 |
3 |
osh-native-souffle |
3 |
no-host |
configure.util-linux |
1,900,731 |
0 |
0 |
0 |
42,400 |
0 |
18,498 |
1,485 |
bash |
11 |
no-host |
configure.util-linux |
2,067,805 |
0 |
0 |
0 |
42,584 |
0 |
17,376 |
1,667 |
dash |
19 |
no-host |
configure.util-linux |
5,129,929 |
11 |
0 |
0 |
39,120 |
0 |
17,039 |
1,473 |
osh-cpython |
27 |
no-host |
configure.util-linux |
1,809,293 |
1 |
0 |
0 |
39,120 |
0 |
17,007 |
1,353 |
osh-native |
35 |
no-host |
configure.util-linux |
1,811,545 |
0 |
0 |
0 |
39,128 |
0 |
17,061 |
1,274 |
osh-native-souffle |
6 |
no-host |
configure.yash |
233,312 |
0 |
0 |
0 |
4,120 |
0 |
878 |
84 |
bash |
14 |
no-host |
configure.yash |
222,412 |
0 |
0 |
0 |
3,720 |
0 |
870 |
88 |
dash |
22 |
no-host |
configure.yash |
363,836 |
0 |
0 |
0 |
3,728 |
0 |
852 |
92 |
osh-cpython |
30 |
no-host |
configure.yash |
235,570 |
0 |
0 |
0 |
3,736 |
0 |
851 |
87 |
osh-native |
38 |
no-host |
configure.yash |
235,244 |
0 |
0 |
0 |
3,736 |
0 |
851 |
135 |
osh-native-souffle |
0 |
no-host |
hello-world |
147 |
0 |
0 |
0 |
8 |
0 |
1 |
0 |
bash |
8 |
no-host |
hello-world |
76 |
0 |
0 |
0 |
8 |
0 |
1 |
0 |
dash |
16 |
no-host |
hello-world |
3,707 |
0 |
0 |
0 |
8 |
0 |
7 |
3 |
osh-cpython |
24 |
no-host |
hello-world |
350 |
0 |
0 |
0 |
16 |
0 |
1 |
0 |
osh-native |
32 |
no-host |
hello-world |
341 |
0 |
0 |
0 |
16 |
0 |
1 |
0 |
osh-native-souffle |
Shell and Host