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 8 942 0.006
modules gen 2 0 189 0.009
loops gen 3 2 298 0.009
fib_recursive gen 11 9 894 0.012
asdl_generated gen 10 9 393 0.025
parse gen 25 24 780 0.032
scoped_resource gen 43 42 1,027 0.042
containers gen 8 4 119 0.066
classes gen 2 1 29 0.074
tuple_return_value gen 16 17 205 0.080
files gen 6 5 78 0.081
gc_stack_roots gen 1 0 12 0.083
length gen 40 40 212 0.190
cartesian gen 89 80 327 0.273
escape gen 102 96 359 0.285
cgi gen 256 268 532 0.481
varargs gen 19 13 24 0.794
control_flow gen 211 160 119 1.771
pea_hello gen NA NA 11 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.3 4.5 12.5 0.35
gc_stack_roots gen 3.5 3.4 8.5 0.42
scoped_resource gen 3.5 3.8 8.5 0.42
cartesian gen 3.5 3.5 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
length gen 3.7 3.9 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.7 8.5 0.45
modules 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
tuple_return_value gen 3.8 3.8 8.3 0.46
loops gen 3.9 3.8 8.5 0.46
fib_recursive gen 3.9 3.7 8.4 0.47
containers gen 28.8 28.6 49.1 0.59
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
fib_recursive gen 0 2 7 0.000
modules gen 0 2 7 0.000
loops gen 1 1 9 0.103
classes gen 1 2 10 0.107
asdl_generated gen 1 2 7 0.138
gc_stack_roots gen 1 2 7 0.142
containers gen 4 6 25 0.158
files gen 1 3 6 0.176
control_flow gen 2 2 8 0.250
fib_iter gen 2 0 7 0.272
tuple_return_value gen 3 1 8 0.361
escape gen 3 7 7 0.429
parse gen 5 3 10 0.487
length gen 4 6 8 0.505
cartesian gen 5 6 9 0.559
cgi gen 3 2 5 0.599
scoped_resource gen 5 3 8 0.624
varargs gen 20 27 29 0.692
pea_hello gen NA NA 7 NA

raw benchmark files