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 191 0.005
fib_iter gen 7 8 941 0.007
loops gen 3 2 298 0.009
fib_recursive gen 9 11 889 0.010
asdl_generated gen 10 10 390 0.027
parse gen 28 24 795 0.035
scoped_resource gen 44 45 1,109 0.039
containers gen 6 6 122 0.049
classes gen 2 2 27 0.077
tuple_return_value gen 19 16 225 0.085
files gen 7 7 74 0.092
gc_stack_roots gen 2 0 12 0.142
length gen 40 40 211 0.187
cartesian gen 87 81 350 0.248
escape gen 97 95 363 0.268
cgi gen 268 268 519 0.516
varargs gen 16 17 21 0.769
control_flow gen 215 169 124 1.734
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.5 4.5 12.3 0.36
parse gen 3.7 3.7 9.1 0.40
cartesian gen 3.5 3.5 8.5 0.42
cgi gen 3.5 3.7 8.4 0.42
control_flow gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.7 8.5 0.43
files gen 3.7 3.8 8.4 0.44
gc_stack_roots gen 3.7 3.5 8.4 0.44
asdl_generated gen 3.7 3.7 8.3 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
scoped_resource gen 3.8 3.5 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.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 0 2 7 0.000
tuple_return_value gen 0 3 9 0.000
classes gen 1 1 13 0.080
files gen 1 1 9 0.108
loops gen 1 1 8 0.118
asdl_generated gen 1 1 7 0.135
modules gen 1 1 6 0.153
fib_iter gen 1 0 6 0.158
fib_recursive gen 2 0 9 0.219
containers gen 6 5 22 0.273
control_flow gen 3 1 7 0.429
parse gen 3 3 6 0.495
scoped_resource gen 5 2 9 0.552
cgi gen 5 2 9 0.555
varargs gen 23 22 34 0.683
length gen 6 7 8 0.744
escape gen 9 10 9 0.994
cartesian gen 6 7 5 1.199
pea_hello gen NA NA 6 NA

raw benchmark files