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 4 28 0.000
fib_iter gen 4 8 972 0.004
modules gen 2 2 196 0.009
asdl_generated gen 4 8 380 0.009
fib_recursive gen 11 11 889 0.012
loops gen 4 0 290 0.015
parse gen 23 23 766 0.029
scoped_resource gen 37 42 1,020 0.036
tuple_return_value gen 19 15 196 0.099
files gen 7 8 74 0.099
containers gen 12 11 118 0.101
gc_stack_roots gen 2 0 12 0.147
length gen 41 45 221 0.186
cartesian gen 94 84 329 0.287
escape gen 105 102 352 0.298
cgi gen 260 250 538 0.484
varargs gen 21 29 24 0.855
control_flow gen 210 177 114 1.837
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.3 0.36
parse gen 3.8 3.9 9.1 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.7 8.7 0.42
escape gen 3.7 3.5 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
files gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.8 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
length gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.5 8.5 0.45
control_flow gen 3.9 3.9 8.4 0.47
loops gen 3.9 3.5 8.4 0.47
containers gen 28.6 28.5 49.0 0.58
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
control_flow gen 0 0 8 0.000
escape gen 0 0 8 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 0 12 0.000
gc_stack_roots gen 0 2 8 0.000
loops gen 0 3 12 0.000
modules gen 0 0 8 0.000
tuple_return_value gen 0 4 4 0.000
containers gen 4 4 28 0.144
classes gen 3 0 12 0.274
cartesian gen 4 4 12 0.326
fib_iter gen 4 0 8 0.492
asdl_generated gen 7 4 12 0.599
parse gen 8 4 12 0.624
varargs gen 45 37 56 0.806
scoped_resource gen 11 4 12 0.931
cgi gen 8 4 0 inf
length gen 4 0 0 inf
pea_hello gen NA NA 8 NA

raw benchmark files