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 3 27 0.000
fib_iter gen 4 4 939 0.004
modules gen 2 2 188 0.010
loops gen 4 3 305 0.012
fib_recursive gen 11 11 885 0.013
asdl_generated gen 11 7 382 0.030
parse gen 27 23 761 0.035
scoped_resource gen 48 42 1,112 0.043
tuple_return_value gen 12 19 193 0.060
containers gen 12 7 134 0.089
files gen 8 8 81 0.098
length gen 45 38 215 0.207
gc_stack_roots gen 2 0 8 0.222
cartesian gen 79 82 349 0.227
escape gen 105 90 354 0.297
cgi gen 265 249 525 0.505
varargs gen 19 12 20 0.971
control_flow gen 211 158 110 1.916
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.3 4.5 12.3 0.35
gc_stack_roots gen 3.4 3.4 8.5 0.40
scoped_resource gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.7 9.1 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.7 8.7 0.45
fib_iter gen 3.8 3.9 8.3 0.46
length gen 3.9 3.8 8.3 0.48
containers gen 28.7 28.5 49.2 0.58
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 4 12 0.000
control_flow gen 0 4 12 0.000
escape gen 0 12 12 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 0 4 0.000
gc_stack_roots gen 0 2 12 0.000
loops gen 0 0 12 0.000
modules gen 0 0 8 0.000
scoped_resource gen 0 4 8 0.000
parse gen 4 4 20 0.190
classes gen 3 0 12 0.281
fib_iter gen 4 4 12 0.318
containers gen 4 7 12 0.326
cgi gen 4 4 12 0.334
varargs gen 47 53 60 0.777
tuple_return_value gen 8 0 8 0.959
cartesian gen 12 4 0 inf
length gen 0 8 0 NA
pea_hello gen NA NA 7 NA

raw benchmark files