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
classes gen 0 3 29 0.000
fib_iter gen 8 8 946 0.008
fib_recursive gen 7 11 879 0.008
modules gen 2 2 183 0.010
loops gen 4 0 298 0.013
asdl_generated gen 7 11 384 0.019
scoped_resource gen 40 37 1,042 0.038
parse gen 31 19 770 0.040
containers gen 8 9 126 0.061
tuple_return_value gen 14 30 196 0.073
files gen 7 4 76 0.096
gc_stack_roots gen 2 0 12 0.143
length gen 38 42 210 0.179
cartesian gen 83 74 336 0.247
escape gen 102 99 362 0.282
cgi gen 270 263 529 0.510
varargs gen 12 15 16 0.784
control_flow gen 204 166 115 1.773
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.5 4.5 12.2 0.37
cartesian gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
gc_stack_roots gen 3.5 3.5 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
files gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.8 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
loops gen 3.8 3.8 8.7 0.44
length gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.7 8.7 0.45
tuple_return_value gen 3.9 3.8 8.5 0.46
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.7 28.6 49.2 0.58
varargs gen 5.5 5.6 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 4 4 0.000
fib_iter gen 0 0 8 0.000
files gen 0 4 8 0.000
gc_stack_roots gen 0 2 8 0.000
loops gen 0 3 8 0.000
modules gen 0 0 16 0.000
parse gen 0 8 20 0.000
fib_recursive gen 4 0 12 0.300
classes gen 3 0 8 0.387
containers gen 8 5 16 0.471
control_flow gen 4 4 8 0.504
tuple_return_value gen 5 0 8 0.592
length gen 8 4 12 0.631
cartesian gen 8 12 12 0.660
varargs gen 54 50 63 0.849
asdl_generated gen 4 0 4 0.902
escape gen 4 4 4 0.986
scoped_resource gen 8 8 8 1.002
pea_hello gen NA NA 4 NA

raw benchmark files