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
classes gen 0 1 29 0.000
modules gen 0 2 185 0.000
loops gen 2 1 302 0.006
fib_iter gen 7 6 939 0.007
fib_recursive gen 10 10 893 0.011
asdl_generated gen 8 9 390 0.020
parse gen 29 24 779 0.037
scoped_resource gen 43 46 1,058 0.041
gc_stack_roots gen 1 2 13 0.064
containers gen 8 7 119 0.066
tuple_return_value gen 16 15 202 0.080
files gen 7 6 77 0.094
length gen 40 40 227 0.176
cartesian gen 87 77 339 0.258
escape gen 95 100 361 0.264
cgi gen 265 266 550 0.481
varargs gen 21 16 27 0.777
control_flow gen 208 159 115 1.808
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.5 12.3 0.36
gc_stack_roots gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
asdl_generated gen 3.5 3.8 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
tuple_return_value gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
fib_iter gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.8 49.0 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
control_flow gen 0 2 6 0.000
files gen 0 2 6 0.000
fib_recursive gen 1 1 8 0.122
gc_stack_roots gen 1 0 6 0.139
containers gen 4 3 25 0.157
modules gen 2 0 11 0.160
fib_iter gen 1 2 5 0.189
parse gen 2 3 9 0.228
classes gen 3 2 9 0.336
asdl_generated gen 3 2 8 0.365
loops gen 2 2 5 0.369
tuple_return_value gen 3 3 7 0.433
cartesian gen 4 9 8 0.500
scoped_resource gen 5 0 9 0.561
length gen 4 6 7 0.572
varargs gen 19 23 26 0.730
cgi gen 4 2 4 0.999
escape gen 11 4 7 1.575
pea_hello gen NA NA 6 NA

raw benchmark files