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
classes gen 0 0 34 0.000
fib_recursive gen 7 11 890 0.008
fib_iter gen 8 8 900 0.008
modules gen 2 2 179 0.010
loops gen 3 3 299 0.011
asdl_generated gen 7 7 387 0.018
parse gen 26 27 768 0.034
containers gen 4 9 107 0.035
scoped_resource gen 44 43 1,031 0.043
tuple_return_value gen 15 18 192 0.080
files gen 7 4 79 0.091
gc_stack_roots gen 2 2 15 0.111
length gen 45 41 205 0.221
cartesian gen 91 78 332 0.274
escape gen 102 104 360 0.285
varargs gen 12 23 24 0.487
cgi gen 265 259 524 0.506
control_flow gen 208 166 116 1.802
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.5 4.5 12.5 0.36
gc_stack_roots gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.8 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
escape gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
length gen 3.8 3.8 8.5 0.45
files gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
fib_iter gen 3.9 3.8 8.4 0.47
containers gen 28.5 28.5 49.2 0.58
varargs gen 5.4 5.4 8.3 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cartesian gen 0 8 8 0.000
control_flow gen 0 0 4 0.000
fib_iter gen 0 0 4 0.000
files gen 0 4 4 0.000
gc_stack_roots gen 0 0 4 0.000
length gen 0 4 8 0.000
loops gen 0 0 8 0.000
modules gen 0 0 12 0.000
containers gen 11 5 32 0.357
fib_recursive gen 4 0 8 0.445
parse gen 4 0 8 0.471
tuple_return_value gen 4 0 8 0.478
escape gen 4 0 8 0.493
classes gen 3 3 4 0.756
asdl_generated gen 4 4 4 0.894
varargs gen 54 42 55 0.974
scoped_resource gen 4 4 4 1.001
cgi gen 4 8 4 1.012
pea_hello gen NA NA 7 NA

raw benchmark files