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 1 1 195 0.004
fib_iter gen 6 7 944 0.006
loops gen 3 2 297 0.009
fib_recursive gen 11 10 888 0.012
asdl_generated gen 8 9 409 0.019
parse gen 30 24 776 0.039
scoped_resource gen 46 41 1,025 0.045
containers gen 7 6 117 0.060
gc_stack_roots gen 1 1 14 0.060
classes gen 2 1 24 0.086
tuple_return_value gen 18 16 194 0.094
files gen 7 6 75 0.097
length gen 40 44 211 0.189
cartesian gen 87 77 333 0.262
escape gen 98 97 356 0.276
cgi gen 269 264 525 0.512
varargs gen 14 18 26 0.547
control_flow gen 206 158 114 1.801
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.3 4.5 12.3 0.35
escape gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
length gen 3.5 3.8 8.4 0.42
scoped_resource gen 3.5 3.8 8.4 0.42
loops gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
modules gen 3.8 3.8 8.7 0.44
files gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 0 1 6 0.000
files gen 0 1 9 0.000
parse gen 0 6 12 0.000
classes gen 1 2 14 0.073
loops gen 1 1 11 0.085
modules gen 1 1 9 0.096
tuple_return_value gen 1 2 8 0.127
gc_stack_roots gen 1 1 5 0.168
containers gen 5 5 27 0.186
fib_iter gen 2 1 7 0.272
scoped_resource gen 2 4 7 0.290
asdl_generated gen 3 2 7 0.417
control_flow gen 3 3 7 0.427
cgi gen 3 4 7 0.428
length gen 5 1 8 0.624
cartesian gen 5 10 7 0.716
escape gen 7 6 8 0.876
varargs gen 25 22 27 0.941
pea_hello gen NA NA 5 NA

raw benchmark files