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 0 195 0.005
loops gen 2 3 300 0.006
fib_iter gen 6 8 942 0.007
fib_recursive gen 10 10 890 0.011
asdl_generated gen 8 10 382 0.021
parse gen 28 24 779 0.036
scoped_resource gen 46 45 1,048 0.044
classes gen 2 1 27 0.076
containers gen 9 6 114 0.076
gc_stack_roots gen 1 0 11 0.079
files gen 7 6 75 0.098
tuple_return_value gen 19 17 195 0.099
length gen 35 40 212 0.167
cartesian gen 83 81 338 0.244
escape gen 103 102 361 0.284
cgi gen 268 263 521 0.514
varargs gen 14 15 19 0.717
control_flow gen 214 163 118 1.809
pea_hello gen NA NA 9 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
cartesian gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.7 8.5 0.42
length gen 3.5 3.8 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
modules gen 3.7 3.8 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
control_flow gen 3.9 3.8 8.4 0.47
tuple_return_value gen 3.9 3.8 8.4 0.47
containers gen 28.9 28.6 49.2 0.59
varargs gen 5.5 5.5 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
control_flow gen 0 1 6 0.000
files gen 0 2 9 0.000
tuple_return_value gen 0 1 5 0.000
classes gen 1 2 11 0.094
gc_stack_roots gen 1 2 8 0.109
containers gen 4 4 32 0.121
fib_iter gen 1 0 8 0.135
fib_recursive gen 1 1 6 0.163
modules gen 1 2 5 0.177
loops gen 2 0 10 0.191
parse gen 2 3 9 0.224
cgi gen 2 5 8 0.250
scoped_resource gen 2 1 8 0.250
asdl_generated gen 3 1 10 0.297
escape gen 3 2 7 0.431
varargs gen 26 25 33 0.767
cartesian gen 9 6 7 1.280
length gen 9 5 4 2.207
pea_hello gen NA NA 8 NA

raw benchmark files