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
gc_stack_roots gen 0 0 10 0.000
modules gen 1 0 189 0.005
loops gen 2 2 301 0.006
fib_iter gen 6 6 937 0.006
fib_recursive gen 10 10 883 0.011
asdl_generated gen 7 9 386 0.018
parse gen 28 23 772 0.036
scoped_resource gen 48 41 1,041 0.046
containers gen 7 5 118 0.058
classes gen 2 2 30 0.069
files gen 6 7 74 0.075
tuple_return_value gen 16 16 196 0.083
length gen 42 39 213 0.199
cartesian gen 86 81 333 0.257
escape gen 96 95 357 0.270
cgi gen 268 253 554 0.483
varargs gen 19 18 24 0.804
control_flow gen 204 160 114 1.796
pea_hello gen NA NA 10 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.2 0.36
cartesian gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.9 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
control_flow gen 3.7 3.9 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
asdl_generated gen 3.7 3.8 8.3 0.44
loops gen 3.7 3.7 8.3 0.44
length gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
files gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.9 3.5 8.5 0.46
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 1 1 11 0.098
classes gen 1 1 9 0.115
modules gen 1 2 7 0.124
containers gen 5 6 25 0.195
files gen 2 0 9 0.204
gc_stack_roots gen 2 2 8 0.205
fib_iter gen 2 2 9 0.214
loops gen 2 1 8 0.229
cgi gen 2 3 8 0.250
parse gen 2 4 6 0.335
control_flow gen 3 3 8 0.376
length gen 2 7 5 0.403
asdl_generated gen 4 2 8 0.490
tuple_return_value gen 3 2 6 0.508
scoped_resource gen 3 5 5 0.597
varargs gen 20 23 32 0.635
cartesian gen 6 6 9 0.663
escape gen 10 9 8 1.243
pea_hello gen NA NA 8 NA

raw benchmark files