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
containers gen 0 9 122 0.000
fib_iter gen 8 4 934 0.008
modules gen 2 2 180 0.010
fib_recursive gen 11 11 884 0.012
loops gen 4 3 299 0.012
asdl_generated gen 11 11 374 0.028
parse gen 30 27 794 0.038
scoped_resource gen 48 38 1,024 0.046
files gen 4 4 80 0.048
tuple_return_value gen 15 15 186 0.083
gc_stack_roots gen 2 2 16 0.109
length gen 37 41 216 0.171
cartesian gen 83 79 336 0.247
escape gen 105 99 348 0.302
cgi gen 269 268 543 0.495
varargs gen 25 12 24 1.042
control_flow gen 211 160 109 1.933
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.6 4.5 12.2 0.38
gc_stack_roots gen 3.4 3.5 8.5 0.40
cgi gen 3.5 3.5 8.5 0.42
files gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
loops gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
escape gen 3.7 3.5 8.3 0.44
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 8.4 0.45
containers gen 28.6 28.5 49.2 0.58
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
asdl_generated gen 0 0 16 0.000
cgi gen 0 0 8 0.000
control_flow gen 0 0 12 0.000
escape gen 0 4 12 0.000
fib_iter gen 0 4 8 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 0 4 0.000
loops gen 0 0 8 0.000
modules gen 0 0 16 0.000
parse gen 0 0 8 0.000
scoped_resource gen 0 8 8 0.000
tuple_return_value gen 4 4 12 0.326
classes gen 3 3 8 0.383
varargs gen 41 53 55 0.744
containers gen 15 5 20 0.755
files gen 4 4 4 0.954
length gen 8 4 8 1.026
cartesian gen 8 8 4 1.978
pea_hello gen NA NA 7 NA

raw benchmark files