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 194 0.005
loops gen 3 2 309 0.008
fib_iter gen 9 9 898 0.010
fib_recursive gen 10 10 899 0.011
asdl_generated gen 8 11 384 0.022
parse gen 29 28 799 0.036
scoped_resource gen 45 42 1,058 0.042
classes gen 2 1 30 0.058
containers gen 8 8 119 0.068
files gen 6 7 78 0.080
tuple_return_value gen 19 15 195 0.095
gc_stack_roots gen 2 0 14 0.143
length gen 41 44 210 0.193
cartesian gen 84 79 349 0.239
escape gen 103 101 356 0.288
cgi gen 255 279 529 0.483
varargs gen 18 17 28 0.647
control_flow gen 210 161 118 1.780
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.6 12.2 0.37
gc_stack_roots gen 3.4 3.5 8.4 0.41
parse gen 3.8 3.8 9.0 0.42
modules gen 3.7 3.7 8.7 0.42
cartesian gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
control_flow gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.5 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
scoped_resource gen 3.8 3.7 8.3 0.46
containers gen 28.9 28.6 49.1 0.59
varargs gen 5.6 5.4 8.5 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 9 0.000
gc_stack_roots gen 0 2 6 0.000
fib_recursive gen 1 1 8 0.124
control_flow gen 1 1 8 0.125
modules gen 1 0 7 0.135
containers gen 5 3 32 0.158
parse gen 2 0 12 0.167
classes gen 2 3 10 0.174
loops gen 2 1 7 0.246
files gen 2 1 8 0.255
asdl_generated gen 3 0 11 0.288
tuple_return_value gen 2 4 7 0.293
cgi gen 3 2 9 0.334
scoped_resource gen 4 4 12 0.338
escape gen 5 5 12 0.419
length gen 4 3 9 0.440
varargs gen 23 24 26 0.891
cartesian gen 8 8 4 2.014
pea_hello gen NA NA 9 NA

raw benchmark files