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 1 188 0.000
loops gen 2 2 295 0.006
fib_iter gen 6 7 942 0.007
fib_recursive gen 10 10 888 0.011
asdl_generated gen 10 8 385 0.026
classes gen 1 1 30 0.035
parse gen 31 23 774 0.040
scoped_resource gen 43 44 1,032 0.042
containers gen 5 5 111 0.045
files gen 6 5 77 0.083
tuple_return_value gen 18 16 192 0.091
gc_stack_roots gen 2 1 12 0.141
length gen 39 44 213 0.185
cartesian gen 84 80 340 0.248
escape gen 100 99 356 0.282
cgi gen 266 268 535 0.498
varargs gen 20 22 19 1.054
control_flow gen 210 159 117 1.791
pea_hello gen NA NA 10 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.5 8.5 0.42
modules gen 3.5 3.7 8.5 0.42
escape gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.5 8.4 0.44
files gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.8 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 1 7 0.000
parse gen 0 5 11 0.000
files gen 1 3 8 0.132
fib_iter gen 1 1 8 0.134
fib_recursive gen 1 1 7 0.140
control_flow gen 1 2 6 0.166
asdl_generated gen 1 3 6 0.169
modules gen 2 1 9 0.196
loops gen 2 1 9 0.212
containers gen 7 6 32 0.216
classes gen 2 2 8 0.265
tuple_return_value gen 2 2 7 0.278
cgi gen 4 2 9 0.445
varargs gen 19 17 35 0.543
scoped_resource gen 5 2 8 0.618
cartesian gen 7 6 8 0.877
escape gen 8 5 9 0.893
length gen 5 2 4 1.224
pea_hello gen NA NA 8 NA

raw benchmark files