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 0 0 186 0.000
fib_iter gen 5 7 895 0.005
loops gen 3 2 306 0.009
fib_recursive gen 11 9 887 0.012
asdl_generated gen 11 11 415 0.026
parse gen 26 26 806 0.032
classes gen 1 2 29 0.036
scoped_resource gen 46 37 1,043 0.044
files gen 5 7 74 0.061
containers gen 8 5 115 0.068
gc_stack_roots gen 1 2 13 0.072
tuple_return_value gen 19 15 193 0.100
length gen 37 44 207 0.179
cartesian gen 80 77 346 0.232
escape gen 98 93 361 0.272
cgi gen 267 266 526 0.508
varargs gen 15 18 19 0.804
control_flow gen 206 160 116 1.768
pea_hello gen NA NA 10 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.3 12.3 0.36
parse gen 3.7 3.8 9.1 0.40
asdl_generated gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
scoped_resource gen 3.5 3.7 8.5 0.42
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.7 8.5 0.43
length gen 3.8 3.9 8.5 0.45
files gen 3.7 3.8 8.1 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_iter gen 3.8 3.8 8.4 0.45
modules gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
loops gen 3.9 3.8 8.4 0.47
containers gen 28.6 28.8 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 0 10 0.000
fib_recursive gen 0 2 10 0.000
tuple_return_value gen 0 3 8 0.000
scoped_resource gen 1 8 8 0.126
containers gen 4 6 28 0.140
loops gen 1 1 6 0.153
gc_stack_roots gen 1 0 6 0.156
modules gen 2 2 11 0.158
classes gen 2 1 9 0.230
files gen 3 1 9 0.304
control_flow gen 3 3 6 0.498
cgi gen 4 3 7 0.572
parse gen 4 1 7 0.574
varargs gen 24 21 34 0.719
length gen 8 2 8 1.001
escape gen 7 10 6 1.168
fib_iter gen 3 0 2 1.429
cartesian gen 11 9 6 1.841
pea_hello gen NA NA 7 NA

raw benchmark files