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 7 898 0.006
modules gen 2 1 189 0.009
fib_recursive gen 9 10 936 0.009
loops gen 3 2 300 0.009
asdl_generated gen 7 10 389 0.018
parse gen 26 26 773 0.034
scoped_resource gen 42 42 1,037 0.040
containers gen 7 5 115 0.059
gc_stack_roots gen 1 1 12 0.068
classes gen 2 3 28 0.075
files gen 6 7 76 0.079
tuple_return_value gen 16 16 195 0.083
length gen 40 44 211 0.190
cartesian gen 86 79 333 0.258
escape gen 98 99 356 0.277
cgi gen 251 252 533 0.472
varargs gen 22 17 21 1.051
control_flow gen 206 160 113 1.819
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.3 0.36
gc_stack_roots gen 3.4 3.5 8.5 0.40
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.9 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.9 8.7 0.45
control_flow gen 3.9 3.9 8.4 0.47
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.6 5.4 8.5 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
modules gen 0 1 7 0.000
classes gen 1 0 10 0.105
control_flow gen 1 3 8 0.125
loops gen 1 1 7 0.134
gc_stack_roots gen 1 1 6 0.136
files gen 1 1 7 0.144
containers gen 5 5 28 0.173
fib_iter gen 2 1 7 0.270
fib_recursive gen 2 1 7 0.278
tuple_return_value gen 3 2 7 0.437
parse gen 4 1 9 0.446
asdl_generated gen 4 1 8 0.500
varargs gen 17 23 32 0.533
scoped_resource gen 6 3 11 0.544
length gen 5 2 8 0.625
escape gen 9 4 12 0.746
cartesian gen 6 6 8 0.748
cgi gen 4 5 3 1.331
pea_hello gen NA NA 8 NA

raw benchmark files