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 0 11 0.000
modules gen 1 1 191 0.005
fib_iter gen 7 7 948 0.007
loops gen 3 2 304 0.009
fib_recursive gen 9 10 893 0.010
asdl_generated gen 9 10 395 0.022
classes gen 1 1 32 0.034
parse gen 28 24 780 0.035
scoped_resource gen 45 43 1,033 0.044
containers gen 8 8 122 0.062
files gen 6 7 78 0.080
tuple_return_value gen 19 17 193 0.100
length gen 39 45 214 0.180
cartesian gen 87 79 334 0.260
escape gen 100 97 361 0.277
cgi gen 266 263 525 0.506
varargs gen 18 19 27 0.655
control_flow gen 209 159 114 1.841
pea_hello gen NA NA 12 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.3 12.2 0.37
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
cgi gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
files gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
scoped_resource gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.3 0.46
containers gen 28.9 28.9 49.2 0.59
varargs gen 5.5 5.5 8.4 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
control_flow gen 0 2 9 0.000
tuple_return_value gen 0 2 8 0.000
modules gen 1 1 9 0.101
fib_iter gen 1 1 9 0.106
files gen 1 1 7 0.149
loops gen 1 1 6 0.156
containers gen 5 3 26 0.182
gc_stack_roots gen 2 2 8 0.221
classes gen 2 2 9 0.239
scoped_resource gen 3 3 11 0.270
asdl_generated gen 2 1 7 0.280
parse gen 3 3 9 0.329
fib_recursive gen 2 1 6 0.331
cgi gen 4 6 7 0.571
length gen 6 1 10 0.593
cartesian gen 5 8 8 0.626
escape gen 5 8 7 0.715
varargs gen 22 21 27 0.801
pea_hello gen NA NA 7 NA

raw benchmark files