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
gc_stack_roots gen 0 1 8 0.000
modules gen 1 2 187 0.005
fib_iter gen 6 8 904 0.007
fib_recursive gen 10 10 891 0.011
loops gen 4 2 312 0.013
asdl_generated gen 9 10 405 0.022
parse gen 27 24 773 0.035
files gen 3 7 77 0.041
scoped_resource gen 46 41 1,060 0.043
containers gen 9 6 121 0.072
classes gen 2 2 25 0.084
tuple_return_value gen 18 15 194 0.094
length gen 38 40 211 0.181
cartesian gen 85 84 348 0.244
escape gen 99 99 359 0.275
cgi gen 266 262 522 0.510
varargs gen 18 17 29 0.626
control_flow gen 211 158 119 1.783
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.5 12.5 0.36
parse gen 3.8 3.7 9.1 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
modules gen 3.7 3.7 8.7 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
loops gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.7 8.4 0.47
containers gen 28.8 28.8 49.2 0.58
varargs gen 5.5 5.4 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
loops gen 0 1 8 0.000
classes gen 1 1 13 0.081
modules gen 1 0 9 0.098
scoped_resource gen 1 5 7 0.143
fib_iter gen 1 0 7 0.154
gc_stack_roots gen 2 1 11 0.161
fib_recursive gen 1 1 6 0.164
tuple_return_value gen 1 3 6 0.170
control_flow gen 1 1 5 0.199
parse gen 3 3 12 0.252
containers gen 6 5 21 0.276
asdl_generated gen 2 1 6 0.332
cgi gen 3 7 9 0.333
escape gen 7 5 11 0.643
files gen 4 0 6 0.714
cartesian gen 7 1 9 0.778
varargs gen 21 22 23 0.922
length gen 6 5 5 1.209
pea_hello gen NA NA 8 NA

raw benchmark files