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 14 0.000
modules gen 1 1 193 0.005
fib_iter gen 8 8 901 0.008
loops gen 3 2 299 0.009
fib_recursive gen 10 9 898 0.011
asdl_generated gen 10 8 383 0.025
parse gen 28 26 774 0.036
classes gen 1 2 24 0.043
scoped_resource gen 47 41 1,054 0.044
containers gen 8 12 119 0.068
tuple_return_value gen 18 16 195 0.090
files gen 7 6 78 0.092
length gen 41 42 211 0.194
cartesian gen 84 79 336 0.249
escape gen 101 97 366 0.275
cgi gen 267 265 527 0.507
varargs gen 17 16 26 0.640
control_flow gen 209 162 118 1.770
pea_hello gen NA NA 11 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.6 4.5 12.3 0.37
gc_stack_roots gen 3.4 3.4 8.5 0.40
parse gen 3.7 3.9 9.0 0.41
cartesian gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.7 8.4 0.42
cgi gen 3.7 3.8 8.5 0.43
length gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.9 8.7 0.44
fib_iter gen 3.8 3.9 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.7 8.4 0.45
files gen 3.9 3.7 8.5 0.46
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.4 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
fib_iter gen 0 0 4 0.000
files gen 0 2 4 0.000
asdl_generated gen 1 3 8 0.122
fib_recursive gen 1 2 8 0.122
loops gen 1 1 7 0.131
modules gen 1 1 6 0.148
classes gen 2 1 13 0.158
containers gen 4 5 23 0.177
scoped_resource gen 2 4 8 0.249
parse gen 2 2 8 0.252
control_flow gen 2 2 7 0.285
tuple_return_value gen 2 2 6 0.324
gc_stack_roots gen 2 1 5 0.333
cgi gen 3 9 6 0.500
length gen 4 3 7 0.570
varargs gen 23 23 26 0.866
escape gen 5 6 4 1.243
cartesian gen 8 7 4 1.990
pea_hello gen NA NA 7 NA

raw benchmark files