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
loops gen 2 2 309 0.005
fib_iter gen 7 8 912 0.007
modules gen 2 1 189 0.009
fib_recursive gen 10 10 889 0.011
asdl_generated gen 10 10 392 0.025
classes gen 1 2 30 0.034
parse gen 29 24 801 0.036
scoped_resource gen 42 41 1,034 0.041
files gen 5 6 74 0.063
containers gen 7 7 116 0.065
tuple_return_value gen 16 17 193 0.084
length gen 44 44 214 0.205
gc_stack_roots gen 2 0 8 0.218
cartesian gen 75 79 340 0.221
escape gen 101 100 362 0.279
cgi gen 268 254 525 0.510
varargs gen 22 17 28 0.794
control_flow gen 208 161 113 1.835
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.2 0.35
cartesian gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.3 0.43
cgi gen 3.7 3.7 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
length gen 3.7 3.7 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
control_flow gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
escape gen 3.8 3.5 8.4 0.45
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.6 5.5 8.4 0.67
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 11 0.000
modules gen 0 1 8 0.000
asdl_generated gen 1 1 9 0.110
control_flow gen 1 1 8 0.125
fib_iter gen 1 0 7 0.134
containers gen 4 4 27 0.157
fib_recursive gen 1 1 5 0.196
parse gen 2 3 10 0.198
length gen 1 4 5 0.200
loops gen 3 1 11 0.231
classes gen 2 1 8 0.257
files gen 3 2 10 0.282
tuple_return_value gen 3 1 10 0.303
cgi gen 2 0 4 0.499
escape gen 4 4 8 0.499
scoped_resource gen 5 6 8 0.617
varargs gen 19 22 25 0.768
cartesian gen 16 7 4 4.009
pea_hello gen NA NA 7 NA

raw benchmark files