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
loops gen 0 0 295 0.000
fib_iter gen 8 8 904 0.009
modules gen 2 2 189 0.010
fib_recursive gen 11 11 890 0.012
asdl_generated gen 11 7 379 0.028
parse gen 30 23 774 0.039
scoped_resource gen 48 31 1,026 0.047
files gen 4 7 67 0.055
containers gen 8 9 119 0.065
tuple_return_value gen 15 18 191 0.080
classes gen 3 0 23 0.138
gc_stack_roots gen 2 0 12 0.147
length gen 41 38 211 0.193
cartesian gen 76 74 327 0.231
escape gen 97 104 354 0.275
cgi gen 246 268 553 0.445
control_flow gen 196 157 120 1.636
varargs gen 21 20 12 1.728
pea_hello gen NA NA 9 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
cartesian gen 3.5 3.7 8.5 0.42
cgi gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
files gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.8 8.7 0.45
containers gen 28.4 28.5 49.2 0.58
varargs gen 5.5 5.4 8.5 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
asdl_generated gen 0 4 12 0.000
classes gen 0 3 15 0.000
fib_iter gen 0 0 16 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 2 8 0.000
modules gen 0 0 8 0.000
parse gen 0 4 4 0.000
scoped_resource gen 0 15 4 0.000
files gen 4 0 16 0.234
containers gen 8 5 24 0.323
loops gen 4 3 8 0.462
tuple_return_value gen 4 0 8 0.482
length gen 4 8 8 0.510
varargs gen 45 44 68 0.671
escape gen 8 0 12 0.672
cartesian gen 16 12 12 1.330
cgi gen 8 0 4 1.980
control_flow gen 12 4 4 3.004
pea_hello gen NA NA 9 NA

raw benchmark files