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 8 8 891 0.008
modules gen 2 2 203 0.009
fib_recursive gen 11 7 901 0.012
loops gen 4 3 310 0.012
asdl_generated gen 11 7 382 0.029
containers gen 4 5 123 0.031
parse gen 30 27 782 0.038
scoped_resource gen 43 43 1,010 0.043
tuple_return_value gen 15 18 196 0.078
files gen 7 7 76 0.097
gc_stack_roots gen 2 2 12 0.147
classes gen 4 3 17 0.208
length gen 45 45 199 0.226
cartesian gen 79 82 337 0.235
escape gen 103 99 352 0.293
cgi gen 250 252 530 0.472
varargs gen 17 24 16 1.057
control_flow gen 206 158 113 1.816
pea_hello gen NA NA 7 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.6 12.3 0.36
gc_stack_roots gen 3.4 3.5 8.4 0.41
asdl_generated gen 3.5 3.7 8.5 0.42
escape gen 3.5 3.7 8.4 0.42
fib_recursive gen 3.5 3.7 8.4 0.42
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
control_flow gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.5 8.4 0.44
parse gen 3.9 3.7 8.9 0.44
fib_iter gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.9 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
files gen 3.9 3.8 8.4 0.47
loops gen 3.9 3.8 8.4 0.47
containers gen 28.7 28.7 49.1 0.58
varargs gen 5.5 5.6 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
asdl_generated gen 0 4 8 0.000
classes gen 0 0 21 0.000
control_flow gen 0 4 8 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 4 4 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 0 16 0.000
loops gen 0 0 4 0.000
modules gen 0 0 8 0.000
parse gen 0 0 8 0.000
scoped_resource gen 4 4 20 0.198
escape gen 4 4 12 0.331
containers gen 12 9 20 0.584
varargs gen 50 41 63 0.793
tuple_return_value gen 4 0 4 0.959
cgi gen 4 0 4 1.005
cartesian gen 12 8 4 2.959
pea_hello gen NA NA 11 NA

raw benchmark files