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
fib_iter gen 4 8 897 0.004
modules gen 2 2 197 0.009
asdl_generated gen 4 14 389 0.010
fib_recursive gen 11 11 882 0.012
loops gen 4 3 301 0.014
parse gen 26 19 770 0.034
scoped_resource gen 43 46 1,043 0.042
containers gen 8 4 122 0.063
tuple_return_value gen 15 19 232 0.066
classes gen 3 0 38 0.081
files gen 7 8 70 0.104
gc_stack_roots gen 2 2 16 0.107
length gen 37 41 213 0.173
cartesian gen 79 82 336 0.236
escape gen 92 95 351 0.263
cgi gen 268 263 537 0.499
varargs gen 12 19 12 0.990
control_flow gen 211 162 111 1.899
pea_hello gen NA NA 14 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.3 12.3 0.36
parse gen 3.7 3.7 9.1 0.40
escape gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
cartesian gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.5 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.5 0.45
length gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.5 28.7 49.1 0.58
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 4 4 0.000
control_flow gen 0 0 12 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 0 12 0.000
gc_stack_roots gen 0 0 4 0.000
loops gen 0 0 4 0.000
scoped_resource gen 4 0 12 0.327
containers gen 8 11 20 0.389
fib_iter gen 4 0 8 0.499
varargs gen 53 46 67 0.804
escape gen 12 8 12 1.007
parse gen 4 8 4 1.078
cartesian gen 12 4 8 1.487
length gen 7 4 4 1.833
asdl_generated gen 8 0 4 1.878
tuple_return_value gen 4 0 0 inf
classes gen 0 3 0 NA
modules gen 0 0 0 NA
pea_hello gen NA NA 5 NA

raw benchmark files