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 189 0.005
fib_iter gen 6 9 943 0.007
fib_recursive gen 9 10 920 0.010
loops gen 5 3 301 0.016
asdl_generated gen 11 11 410 0.026
parse gen 30 26 791 0.038
scoped_resource gen 48 40 1,042 0.046
containers gen 6 7 120 0.050
gc_stack_roots gen 1 1 10 0.087
files gen 6 7 73 0.087
tuple_return_value gen 18 17 192 0.094
classes gen 4 1 31 0.115
length gen 41 45 212 0.191
cartesian gen 91 80 335 0.272
escape gen 106 94 366 0.289
cgi gen 269 254 533 0.504
varargs gen 19 15 23 0.834
control_flow gen 214 163 114 1.877
pea_hello gen NA NA 12 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.6 4.5 12.3 0.37
gc_stack_roots gen 3.4 3.4 8.5 0.40
cgi gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
length gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.7 9.1 0.43
asdl_generated gen 3.7 3.7 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
modules gen 3.8 3.8 8.7 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.9 28.9 49.1 0.59
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
classes gen 0 3 8 0.000
loops gen 0 0 8 0.000
scoped_resource gen 0 7 7 0.000
modules gen 1 1 11 0.091
gc_stack_roots gen 1 1 9 0.097
control_flow gen 1 1 8 0.125
files gen 2 1 10 0.213
containers gen 6 4 27 0.223
asdl_generated gen 1 2 4 0.245
fib_recursive gen 2 1 8 0.245
parse gen 3 2 10 0.300
tuple_return_value gen 3 2 10 0.303
fib_iter gen 2 0 6 0.309
cartesian gen 4 9 11 0.364
varargs gen 23 27 31 0.749
escape gen 5 13 6 0.830
length gen 6 2 7 0.846
cgi gen 5 4 4 1.248
pea_hello gen NA NA 6 NA

raw benchmark files