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 0 1 186 0.000
fib_iter gen 7 8 909 0.007
fib_recursive gen 9 10 892 0.010
loops gen 4 2 304 0.012
asdl_generated gen 9 10 390 0.022
parse gen 26 21 775 0.034
classes gen 1 2 26 0.040
scoped_resource gen 43 43 1,048 0.041
containers gen 6 4 116 0.050
files gen 5 6 78 0.058
gc_stack_roots gen 1 1 13 0.067
tuple_return_value gen 18 17 191 0.095
length gen 42 40 211 0.200
cartesian gen 82 82 335 0.243
escape gen 99 99 357 0.278
cgi gen 266 266 523 0.509
varargs gen 14 15 21 0.652
control_flow gen 204 162 113 1.798
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.3 4.5 12.5 0.35
escape gen 3.5 3.5 8.5 0.42
modules gen 3.7 3.7 8.7 0.42
cartesian gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
gc_stack_roots gen 3.7 3.4 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
control_flow gen 3.7 3.9 8.4 0.44
files gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.9 8.4 0.45
fib_recursive gen 3.9 3.7 8.4 0.47
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.4 5.5 8.5 0.63
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 0 1 7 0.000
fib_iter gen 1 0 10 0.094
tuple_return_value gen 1 1 10 0.101
gc_stack_roots gen 1 1 6 0.145
classes gen 2 1 12 0.172
modules gen 2 1 10 0.176
containers gen 6 6 28 0.209
asdl_generated gen 2 1 8 0.244
fib_recursive gen 2 1 7 0.278
length gen 2 5 7 0.288
control_flow gen 3 3 7 0.427
cgi gen 4 3 9 0.444
parse gen 4 6 9 0.446
files gen 3 1 6 0.455
scoped_resource gen 5 3 8 0.620
escape gen 6 5 9 0.669
varargs gen 26 24 31 0.820
cartesian gen 10 6 7 1.421
pea_hello gen NA NA 6 NA

raw benchmark files