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 0 25 0.000
loops gen 0 3 287 0.000
fib_iter gen 8 8 893 0.008
modules gen 2 2 193 0.009
fib_recursive gen 11 7 896 0.012
asdl_generated gen 11 11 398 0.027
parse gen 30 19 764 0.040
scoped_resource gen 41 46 1,032 0.040
files gen 4 7 69 0.053
tuple_return_value gen 15 14 198 0.078
containers gen 11 4 111 0.102
gc_stack_roots gen 2 2 16 0.108
length gen 34 37 211 0.161
escape gen 84 95 378 0.222
cartesian gen 83 74 334 0.248
cgi gen 265 267 534 0.496
varargs gen 25 12 28 0.879
control_flow gen 198 158 110 1.796
pea_hello gen NA NA 11 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.3 0.35
escape gen 3.4 3.7 8.4 0.41
gc_stack_roots gen 3.5 3.5 8.5 0.42
modules gen 3.7 3.7 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.7 8.4 0.47
containers gen 28.6 28.6 49.1 0.58
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 8 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 4 4 0.000
gc_stack_roots gen 0 0 4 0.000
modules gen 0 0 4 0.000
parse gen 0 8 16 0.000
containers gen 4 11 32 0.119
loops gen 4 0 16 0.233
files gen 4 0 15 0.239
classes gen 3 3 13 0.249
cgi gen 4 0 8 0.500
cartesian gen 8 12 12 0.662
control_flow gen 8 4 12 0.670
varargs gen 41 52 52 0.788
scoped_resource gen 7 0 8 0.932
tuple_return_value gen 4 5 4 0.956
length gen 11 8 8 1.426
escape gen 20 8 8 2.506
pea_hello gen NA NA 7 NA

raw benchmark files