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 2 185 0.000
fib_iter gen 4 8 1,079 0.004
fib_recursive gen 11 7 893 0.012
loops gen 4 3 301 0.012
asdl_generated gen 5 7 377 0.014
parse gen 26 27 770 0.034
scoped_resource gen 47 45 1,100 0.043
tuple_return_value gen 12 14 189 0.061
containers gen 7 0 114 0.065
files gen 7 7 77 0.095
gc_stack_roots gen 2 0 16 0.110
classes gen 3 3 27 0.128
length gen 40 37 203 0.199
cartesian gen 79 82 328 0.241
escape gen 97 95 360 0.271
cgi gen 265 264 543 0.487
varargs gen 16 16 32 0.514
control_flow gen 202 159 114 1.774
pea_hello gen NA NA 15 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.3 12.3 0.35
parse gen 3.7 3.9 9.1 0.40
gc_stack_roots gen 3.4 3.5 8.4 0.41
cartesian gen 3.5 3.5 8.5 0.42
escape gen 3.5 3.7 8.5 0.42
fib_recursive gen 3.5 3.7 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
fib_iter 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.7 8.7 0.44
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
files gen 3.9 3.8 8.4 0.47
containers gen 28.4 28.5 49.1 0.58
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
classes gen 0 0 11 0.000
fib_recursive gen 0 4 8 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 4 0.000
loops gen 0 0 4 0.000
scoped_resource gen 0 0 4 0.000
modules gen 2 0 12 0.152
containers gen 7 14 29 0.260
parse gen 4 0 16 0.269
length gen 4 8 12 0.332
asdl_generated gen 5 4 16 0.338
fib_iter gen 4 0 8 0.473
cgi gen 4 4 8 0.502
control_flow gen 4 4 8 0.514
tuple_return_value gen 8 5 8 0.978
cartesian gen 12 4 12 0.999
varargs gen 49 49 48 1.028
escape gen 8 8 4 1.948
pea_hello gen NA NA 4 NA

raw benchmark files