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 191 0.005
fib_iter gen 7 7 899 0.007
fib_recursive gen 10 10 895 0.011
loops gen 4 2 292 0.013
asdl_generated gen 9 10 387 0.023
parse gen 28 22 759 0.037
scoped_resource gen 44 43 1,061 0.042
classes gen 2 1 31 0.050
containers gen 7 6 118 0.058
files gen 5 5 77 0.059
gc_stack_roots gen 1 2 12 0.068
tuple_return_value gen 19 15 187 0.102
length gen 40 37 211 0.190
cartesian gen 84 80 342 0.245
escape gen 92 98 353 0.261
cgi gen 267 268 529 0.504
varargs gen 14 17 25 0.566
control_flow gen 211 163 114 1.856
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.5 4.3 12.3 0.36
cartesian gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
loops gen 3.7 3.8 8.5 0.43
fib_recursive gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.9 8.8 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 49.2 0.59
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
loops gen 0 1 12 0.000
tuple_return_value gen 0 3 12 0.000
fib_recursive gen 1 1 9 0.109
fib_iter gen 1 1 7 0.135
gc_stack_roots gen 1 0 6 0.136
modules gen 1 0 6 0.145
containers gen 5 5 24 0.202
parse gen 2 5 10 0.203
classes gen 2 2 7 0.220
asdl_generated gen 2 1 8 0.244
control_flow gen 2 2 8 0.251
cgi gen 3 2 9 0.334
files gen 3 3 7 0.386
scoped_resource gen 4 4 7 0.574
length gen 4 9 6 0.669
varargs gen 25 22 28 0.903
cartesian gen 8 6 8 0.994
escape gen 12 5 7 1.715
pea_hello gen NA NA 6 NA

raw benchmark files