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 1 2 194 0.005
fib_iter gen 8 8 935 0.008
loops gen 3 1 297 0.009
fib_recursive gen 9 10 899 0.010
asdl_generated gen 10 8 386 0.025
containers gen 4 7 124 0.031
parse gen 26 24 780 0.034
scoped_resource gen 44 43 1,039 0.042
classes gen 2 2 29 0.071
files gen 6 7 76 0.084
tuple_return_value gen 18 16 197 0.093
gc_stack_roots gen 1 1 9 0.097
length gen 40 44 225 0.178
cartesian gen 87 77 335 0.260
escape gen 98 100 369 0.266
cgi gen 264 266 541 0.489
varargs gen 14 21 21 0.663
control_flow gen 209 161 116 1.805
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.2 0.35
gc_stack_roots gen 3.4 3.5 8.4 0.41
parse gen 3.8 3.8 9.1 0.42
cgi gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
files gen 3.7 3.7 8.4 0.44
modules gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
cartesian gen 3.8 3.5 8.5 0.45
length gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
containers gen 28.8 28.8 48.9 0.59
varargs gen 5.4 5.6 8.4 0.64
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 0 8 0.000
loops gen 1 2 12 0.078
gc_stack_roots gen 1 1 10 0.087
classes gen 1 1 10 0.104
asdl_generated gen 1 3 8 0.122
files gen 1 1 7 0.153
tuple_return_value gen 1 2 6 0.170
modules gen 1 0 4 0.233
fib_recursive gen 2 1 8 0.245
parse gen 4 3 11 0.356
cartesian gen 4 10 11 0.363
containers gen 8 3 20 0.393
control_flow gen 3 1 6 0.499
scoped_resource gen 4 4 6 0.662
varargs gen 26 18 32 0.808
length gen 5 2 4 1.247
escape gen 8 4 6 1.319
cgi gen 5 3 3 1.664
pea_hello gen NA NA 6 NA

raw benchmark files