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 0 2 189 0.000
fib_iter gen 7 7 901 0.007
loops gen 3 2 295 0.009
fib_recursive gen 10 10 899 0.011
asdl_generated gen 7 10 390 0.017
parse gen 28 26 771 0.036
scoped_resource gen 43 43 1,046 0.041
containers gen 8 7 121 0.064
classes gen 2 1 29 0.070
files gen 6 5 76 0.073
tuple_return_value gen 17 16 189 0.091
gc_stack_roots gen 2 0 12 0.140
length gen 40 40 211 0.189
cartesian gen 85 74 329 0.260
escape gen 102 99 355 0.287
cgi gen 249 264 522 0.476
varargs gen 21 20 25 0.834
control_flow gen 209 167 114 1.831
pea_hello gen NA NA 8 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.3 4.5 12.3 0.35
gc_stack_roots gen 3.4 3.5 8.5 0.40
cartesian gen 3.5 3.7 8.4 0.42
files gen 3.7 3.8 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
scoped_resource gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
asdl_generated gen 3.8 3.7 8.5 0.45
length gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.9 3.8 8.5 0.46
control_flow gen 3.9 3.8 8.3 0.48
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 2 6 0.000
classes gen 1 2 9 0.113
loops gen 1 1 8 0.113
fib_iter gen 1 1 6 0.157
containers gen 4 3 20 0.193
fib_recursive gen 1 1 5 0.196
tuple_return_value gen 2 2 10 0.203
files gen 2 3 8 0.230
control_flow gen 2 1 7 0.285
modules gen 2 0 6 0.287
parse gen 2 1 6 0.334
length gen 5 6 8 0.622
asdl_generated gen 4 1 6 0.643
varargs gen 18 19 27 0.662
cartesian gen 6 12 8 0.745
cgi gen 6 4 8 0.749
scoped_resource gen 4 2 5 0.788
escape gen 7 4 8 0.873
pea_hello gen NA NA 10 NA

raw benchmark files