mycpp Code Generation

Measure the speedup from mycpp, and the resource usage.

Source code: oil/mycpp/examples

User Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 2 14 0.000
fib_iter gen 6 8 944 0.006
modules gen 2 1 189 0.009
loops gen 3 1 301 0.009
fib_recursive gen 10 9 894 0.011
asdl_generated gen 9 9 413 0.021
parse gen 29 25 773 0.038
scoped_resource gen 44 40 1,048 0.042
containers gen 8 8 121 0.064
tuple_return_value gen 15 15 194 0.079
classes gen 2 1 24 0.086
files gen 7 7 75 0.097
length gen 41 43 208 0.198
cartesian gen 93 86 338 0.276
escape gen 103 97 352 0.292
cgi gen 265 267 527 0.503
varargs gen 20 13 24 0.831
control_flow gen 209 160 111 1.881
pea_hello gen NA NA 11 NA

Max Resident Set Size (MB)

Lower ratios are better. We use MB (powers of 10), not MiB (powers of 2).

example name gen C++ C++-Souffle Python C++ : Python
classes gen 4.3 4.3 12.3 0.35
gc_stack_roots gen 3.4 3.5 8.4 0.41
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.8 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.9 8.4 0.45
fib_recursive gen 3.9 3.7 8.4 0.47
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.4 5.6 8.5 0.63
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
files gen 0 1 9 0.000
modules gen 0 1 7 0.000
classes gen 1 2 14 0.074
control_flow gen 1 1 10 0.100
parse gen 1 2 10 0.101
loops gen 1 2 8 0.113
containers gen 4 2 25 0.154
fib_recursive gen 1 2 5 0.215
cartesian gen 2 1 8 0.251
escape gen 3 6 10 0.300
fib_iter gen 2 0 6 0.315
asdl_generated gen 2 2 6 0.326
gc_stack_roots gen 2 0 5 0.339
length gen 3 3 8 0.376
scoped_resource gen 4 6 8 0.499
tuple_return_value gen 4 3 7 0.547
varargs gen 19 26 28 0.677
cgi gen 5 5 7 0.714
pea_hello gen NA NA 7 NA

raw benchmark files