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
fib_iter gen 6 6 941 0.006
modules gen 2 1 191 0.009
loops gen 3 3 305 0.011
fib_recursive gen 10 11 897 0.011
asdl_generated gen 8 10 387 0.022
classes gen 1 2 31 0.028
parse gen 27 26 771 0.034
scoped_resource gen 45 45 1,039 0.044
containers gen 7 5 120 0.056
tuple_return_value gen 16 16 197 0.083
files gen 7 6 79 0.088
gc_stack_roots gen 2 2 13 0.147
length gen 41 41 211 0.193
cartesian gen 85 81 347 0.245
escape gen 102 101 359 0.283
cgi gen 262 252 547 0.479
varargs gen 22 18 31 0.724
control_flow gen 205 161 115 1.792
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.6 12.2 0.37
gc_stack_roots gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
scoped_resource gen 3.5 3.7 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
cgi gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.9 8.3 0.44
control_flow gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.9 8.4 0.45
loops gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.9 49.1 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
gc_stack_roots gen 0 0 6 0.000
modules gen 0 1 8 0.000
loops gen 1 0 9 0.119
containers gen 6 6 32 0.181
fib_iter gen 2 1 10 0.189
fib_recursive gen 1 0 4 0.247
files gen 1 2 4 0.249
control_flow gen 2 2 7 0.283
scoped_resource gen 3 1 10 0.302
classes gen 3 2 8 0.330
parse gen 4 2 12 0.340
asdl_generated gen 3 2 7 0.451
length gen 4 5 8 0.497
tuple_return_value gen 3 3 6 0.508
cgi gen 5 3 8 0.624
escape gen 6 6 9 0.664
varargs gen 17 22 23 0.754
cartesian gen 7 6 6 1.167
pea_hello gen NA NA 5 NA

raw benchmark files