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
asdl_generated gen 0 4 378 0.000
modules gen 0 0 196 0.000
fib_iter gen 4 8 887 0.004
loops gen 4 3 303 0.012
fib_recursive gen 11 11 888 0.012
parse gen 22 19 782 0.028
containers gen 4 9 106 0.036
scoped_resource gen 41 45 1,024 0.040
files gen 4 4 67 0.054
tuple_return_value gen 15 14 194 0.079
classes gen 3 0 34 0.093
gc_stack_roots gen 2 2 10 0.173
length gen 37 39 211 0.174
cartesian gen 88 78 341 0.258
escape gen 94 103 352 0.266
cgi gen 265 267 530 0.500
varargs gen 23 21 20 1.151
control_flow gen 205 157 116 1.775
pea_hello gen NA NA 18 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.5 0.40
cartesian 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
escape gen 3.7 3.5 8.5 0.43
files gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.5 8.4 0.44
loops gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
scoped_resource gen 3.8 3.5 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
length gen 3.9 3.8 8.5 0.46
containers gen 28.4 28.5 49.2 0.58
varargs gen 5.5 5.5 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
classes gen 0 3 4 0.000
control_flow gen 0 4 8 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 0 10 0.000
loops gen 0 0 8 0.000
files gen 4 4 16 0.228
containers gen 11 5 39 0.294
parse gen 9 8 20 0.439
scoped_resource gen 7 0 16 0.462
fib_iter gen 4 0 8 0.476
tuple_return_value gen 4 5 8 0.476
varargs gen 42 45 60 0.703
asdl_generated gen 11 7 12 0.895
cgi gen 4 0 4 1.007
length gen 8 8 8 1.025
escape gen 12 4 8 1.462
cartesian gen 4 8 0 inf
modules gen 2 2 0 inf
pea_hello gen NA NA 0 NA

raw benchmark files