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 0 30 0.000
gc_stack_roots gen 0 2 12 0.000
fib_iter gen 8 8 879 0.009
modules gen 2 0 187 0.010
loops gen 4 3 306 0.012
fib_recursive gen 11 11 887 0.012
asdl_generated gen 5 7 381 0.014
parse gen 30 27 771 0.039
scoped_resource gen 43 34 1,036 0.042
containers gen 8 4 143 0.054
files gen 7 7 75 0.097
tuple_return_value gen 19 18 191 0.101
length gen 44 45 215 0.206
cartesian gen 79 82 335 0.237
escape gen 98 95 359 0.272
cgi gen 253 269 522 0.485
varargs gen 8 28 16 0.514
control_flow gen 209 161 108 1.934
pea_hello gen NA NA 18 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.3 12.3 0.36
cartesian gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
files gen 3.7 3.7 8.5 0.43
length gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
fib_recursive gen 3.7 3.7 8.4 0.44
gc_stack_roots gen 3.7 3.4 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
fib_iter gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.5 28.3 49.1 0.58
varargs gen 5.5 5.6 8.4 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 8 8 0.000
control_flow gen 0 0 12 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 0 8 0.000
length gen 0 0 4 0.000
loops gen 0 0 4 0.000
modules gen 0 2 8 0.000
parse gen 0 0 8 0.000
tuple_return_value gen 0 0 8 0.000
gc_stack_roots gen 2 0 8 0.227
classes gen 3 3 9 0.377
asdl_generated gen 5 4 12 0.449
containers gen 8 11 12 0.649
varargs gen 57 37 63 0.899
scoped_resource gen 4 11 4 0.984
cartesian gen 12 4 8 1.492
escape gen 8 8 0 inf
pea_hello gen NA NA 0 NA

raw benchmark files