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 0 192 0.005
fib_iter gen 6 8 875 0.007
loops gen 3 2 312 0.009
fib_recursive gen 9 10 933 0.009
asdl_generated gen 9 8 387 0.023
classes gen 1 1 34 0.024
parse gen 28 24 787 0.036
scoped_resource gen 43 41 1,029 0.042
gc_stack_roots gen 1 2 15 0.059
containers gen 8 6 124 0.063
files gen 5 6 77 0.071
tuple_return_value gen 18 16 191 0.095
length gen 41 38 221 0.187
cartesian gen 88 78 335 0.264
escape gen 99 96 369 0.269
varargs gen 12 12 26 0.459
cgi gen 265 264 541 0.489
control_flow gen 206 163 114 1.799
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
gc_stack_roots gen 3.5 3.4 8.5 0.42
cartesian gen 3.5 3.5 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
loops gen 3.5 3.8 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
escape gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
files gen 3.8 3.9 8.4 0.45
length gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.9 3.5 8.4 0.47
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.4 5.5 8.3 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
loops gen 1 1 9 0.102
modules gen 1 2 8 0.111
tuple_return_value gen 1 2 8 0.126
gc_stack_roots gen 1 0 4 0.207
containers gen 4 4 18 0.216
fib_iter gen 2 0 8 0.237
asdl_generated gen 2 3 8 0.243
cgi gen 2 4 8 0.251
files gen 2 2 6 0.303
fib_recursive gen 2 1 6 0.327
parse gen 3 3 8 0.379
length gen 3 7 7 0.433
scoped_resource gen 5 5 10 0.491
control_flow gen 3 1 6 0.502
classes gen 2 2 4 0.584
cartesian gen 3 8 5 0.603
varargs gen 28 28 27 1.031
escape gen 6 7 4 1.503
pea_hello gen NA NA 6 NA

raw benchmark files