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 10 0.000
modules gen 0 1 201 0.000
loops gen 2 2 297 0.006
fib_iter gen 8 7 898 0.008
fib_recursive gen 9 10 886 0.010
asdl_generated gen 9 9 387 0.023
scoped_resource gen 45 43 1,031 0.043
containers gen 6 7 142 0.044
parse gen 37 25 772 0.048
classes gen 2 3 26 0.077
tuple_return_value gen 16 15 191 0.084
files gen 6 6 74 0.086
length gen 37 43 211 0.176
cartesian gen 82 85 333 0.246
escape gen 101 98 363 0.278
cgi gen 264 267 522 0.506
varargs gen 16 16 30 0.540
control_flow gen 206 160 115 1.792
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.3 4.5 12.3 0.35
parse gen 3.7 3.9 9.1 0.40
cartesian gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.9 8.5 0.45
files gen 3.8 3.7 8.5 0.45
length gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.9 8.4 0.45
control_flow gen 3.9 3.7 8.5 0.46
loops gen 3.9 3.9 8.4 0.47
containers gen 28.9 28.6 49.2 0.59
varargs gen 5.6 5.5 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 1 8 0.000
classes gen 1 0 11 0.091
files gen 1 1 9 0.101
parse gen 2 2 11 0.181
gc_stack_roots gen 2 2 9 0.189
containers gen 5 3 25 0.212
fib_recursive gen 2 1 8 0.243
loops gen 2 1 7 0.257
asdl_generated gen 2 2 7 0.276
control_flow gen 2 2 7 0.287
modules gen 2 1 5 0.349
scoped_resource gen 3 3 8 0.373
tuple_return_value gen 3 3 7 0.433
escape gen 4 6 8 0.498
cgi gen 6 1 9 0.665
length gen 7 2 8 0.876
cartesian gen 10 2 10 0.997
varargs gen 23 24 23 1.013
pea_hello gen NA NA 7 NA

raw benchmark files