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 2 14 0.000
fib_iter gen 8 7 905 0.008
modules gen 2 1 189 0.009
loops gen 3 2 299 0.010
fib_recursive gen 10 10 890 0.011
asdl_generated gen 8 6 385 0.020
parse gen 30 26 773 0.038
scoped_resource gen 47 42 1,047 0.045
classes gen 2 1 32 0.066
containers gen 8 6 118 0.067
files gen 7 5 75 0.088
tuple_return_value gen 17 17 191 0.090
length gen 38 39 212 0.180
cartesian gen 84 80 338 0.248
escape gen 97 98 368 0.265
cgi gen 259 251 520 0.498
varargs gen 21 11 28 0.741
control_flow gen 207 160 116 1.784
pea_hello gen NA NA 9 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.2 0.37
cgi gen 3.4 3.7 8.4 0.41
gc_stack_roots gen 3.4 3.4 8.4 0.41
modules gen 3.5 3.7 8.7 0.41
escape gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.9 9.0 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
control_flow gen 3.7 3.7 8.5 0.43
length gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
cartesian 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.7 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.6 28.9 49.1 0.58
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 0 0 6 0.000
modules gen 0 1 7 0.000
fib_recursive gen 1 1 12 0.082
parse gen 1 1 9 0.110
files gen 1 3 8 0.137
classes gen 1 2 7 0.150
containers gen 4 5 26 0.152
loops gen 1 1 6 0.159
scoped_resource gen 1 3 6 0.166
cgi gen 2 3 9 0.222
tuple_return_value gen 2 1 8 0.254
asdl_generated gen 3 5 9 0.324
gc_stack_roots gen 2 0 5 0.387
control_flow gen 2 1 5 0.400
varargs gen 19 28 25 0.751
length gen 6 6 8 0.757
cartesian gen 10 6 9 1.111
escape gen 8 5 7 1.136
pea_hello gen NA NA 9 NA

raw benchmark files