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
gc_stack_roots gen 0 1 15 0.000
modules gen 0 1 192 0.000
loops gen 2 2 301 0.006
fib_iter gen 7 6 907 0.007
fib_recursive gen 9 10 898 0.011
asdl_generated gen 9 6 393 0.023
parse gen 27 27 801 0.034
scoped_resource gen 44 45 1,084 0.040
containers gen 7 6 118 0.061
classes gen 2 1 34 0.064
files gen 6 7 78 0.071
tuple_return_value gen 19 16 196 0.099
length gen 40 42 212 0.190
cartesian gen 86 79 330 0.262
escape gen 100 102 354 0.283
cgi gen 269 268 521 0.515
varargs gen 14 20 27 0.521
control_flow gen 210 161 113 1.858
pea_hello gen NA NA 13 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
gc_stack_roots gen 3.4 3.4 8.5 0.40
asdl_generated gen 3.5 3.8 8.5 0.42
escape gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.7 9.0 0.42
cartesian gen 3.5 3.5 8.3 0.43
cgi gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
files gen 3.7 3.9 8.4 0.44
length gen 3.7 3.8 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.9 49.1 0.59
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
tuple_return_value gen 0 3 8 0.000
control_flow gen 1 1 9 0.112
fib_iter gen 1 2 9 0.122
classes gen 1 2 7 0.156
containers gen 5 4 29 0.178
fib_recursive gen 2 1 8 0.236
asdl_generated gen 2 5 8 0.246
files gen 2 1 7 0.264
modules gen 2 1 6 0.295
loops gen 2 1 6 0.314
parse gen 3 0 9 0.326
cgi gen 3 1 8 0.376
gc_stack_roots gen 2 1 5 0.401
cartesian gen 5 8 9 0.559
escape gen 6 3 9 0.667
scoped_resource gen 5 0 6 0.828
length gen 5 4 6 0.837
varargs gen 26 20 28 0.932
pea_hello gen NA NA 6 NA

raw benchmark files