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 938 0.007
modules gen 2 2 190 0.009
loops gen 3 3 299 0.009
fib_recursive gen 10 10 898 0.011
asdl_generated gen 5 10 386 0.013
parse gen 26 24 793 0.033
scoped_resource gen 42 42 1,038 0.041
containers gen 6 5 125 0.047
files gen 6 5 78 0.080
classes gen 2 2 25 0.085
tuple_return_value gen 18 17 196 0.093
gc_stack_roots gen 2 0 11 0.155
length gen 44 43 213 0.208
cartesian gen 83 81 336 0.247
escape gen 98 101 363 0.270
cgi gen 268 266 524 0.511
varargs gen 15 15 25 0.608
control_flow gen 206 159 112 1.847
pea_hello gen NA NA 8 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
gc_stack_roots gen 3.4 3.5 8.5 0.40
cartesian gen 3.5 3.5 8.5 0.42
scoped_resource gen 3.5 3.7 8.5 0.42
loops gen 3.5 3.8 8.4 0.42
modules gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.7 9.1 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
length gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 2 8 0.000
modules gen 0 0 6 0.000
classes gen 1 1 12 0.089
fib_recursive gen 1 1 9 0.112
tuple_return_value gen 1 1 8 0.126
loops gen 1 0 7 0.129
fib_iter gen 1 2 7 0.155
files gen 1 2 6 0.173
length gen 2 2 11 0.179
containers gen 6 5 25 0.234
cgi gen 2 3 7 0.286
parse gen 4 3 10 0.390
control_flow gen 4 3 10 0.402
asdl_generated gen 6 1 7 0.833
varargs gen 24 25 28 0.869
scoped_resource gen 6 3 6 0.987
cartesian gen 9 5 7 1.284
escape gen 7 3 4 1.748
pea_hello gen NA NA 10 NA

raw benchmark files