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 2 29 0.000
modules gen 0 0 187 0.000
fib_iter gen 7 6 925 0.007
loops gen 3 2 295 0.010
fib_recursive gen 10 10 923 0.011
asdl_generated gen 10 11 381 0.026
parse gen 28 23 846 0.034
scoped_resource gen 44 42 1,072 0.041
files gen 5 6 77 0.071
containers gen 9 4 125 0.072
gc_stack_roots gen 1 1 12 0.073
tuple_return_value gen 17 18 199 0.083
length gen 43 41 209 0.206
cartesian gen 87 79 352 0.247
escape gen 99 101 356 0.279
varargs gen 13 19 26 0.504
cgi gen 262 265 521 0.504
control_flow gen 209 165 118 1.763
pea_hello gen NA NA 13 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
gc_stack_roots gen 3.5 3.4 8.4 0.42
cartesian gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.7 9.1 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
asdl_generated gen 3.8 3.5 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.9 8.4 0.45
tuple_return_value gen 3.9 3.8 8.5 0.46
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.6 5.5 8.4 0.67
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 1 2 9 0.105
asdl_generated gen 1 0 9 0.108
loops gen 1 1 9 0.115
fib_recursive gen 1 1 8 0.123
gc_stack_roots gen 1 1 7 0.125
containers gen 3 6 21 0.143
modules gen 2 2 9 0.194
parse gen 2 4 10 0.204
length gen 2 4 8 0.250
files gen 2 2 6 0.305
classes gen 3 1 10 0.306
tuple_return_value gen 3 0 8 0.366
scoped_resource gen 3 4 8 0.377
control_flow gen 2 1 5 0.401
cgi gen 7 4 9 0.777
cartesian gen 5 7 6 0.831
escape gen 6 3 7 0.860
varargs gen 26 20 29 0.904
pea_hello gen NA NA 6 NA

raw benchmark files