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
modules gen 1 1 192 0.005
fib_iter gen 8 9 908 0.009
fib_recursive gen 10 11 912 0.011
loops gen 5 2 299 0.017
asdl_generated gen 11 10 410 0.027
parse gen 32 27 763 0.042
scoped_resource gen 44 43 1,046 0.042
containers gen 6 6 120 0.050
tuple_return_value gen 17 19 199 0.085
gc_stack_roots gen 1 1 10 0.088
files gen 7 8 78 0.091
classes gen 4 2 30 0.121
length gen 42 40 218 0.191
cartesian gen 90 85 335 0.270
escape gen 103 101 356 0.289
cgi gen 260 269 533 0.489
varargs gen 17 20 20 0.837
control_flow gen 212 162 113 1.880
pea_hello gen NA NA 10 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.5 4.5 12.3 0.36
cgi gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
cartesian gen 3.5 3.5 8.4 0.42
scoped_resource gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
loops gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.9 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.9 28.6 49.1 0.59
varargs gen 5.4 5.4 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 2 10 0.000
loops gen 0 1 10 0.000
gc_stack_roots gen 1 1 9 0.097
fib_iter gen 1 1 9 0.112
fib_recursive gen 1 0 8 0.126
parse gen 2 3 11 0.180
control_flow gen 2 2 10 0.199
modules gen 1 2 4 0.228
containers gen 6 6 26 0.232
files gen 2 2 7 0.290
cgi gen 3 4 7 0.429
tuple_return_value gen 3 1 6 0.497
scoped_resource gen 5 4 9 0.550
length gen 5 6 9 0.551
escape gen 6 7 10 0.599
cartesian gen 6 2 10 0.604
asdl_generated gen 3 2 5 0.612
varargs gen 24 21 33 0.716
pea_hello gen NA NA 8 NA

raw benchmark files