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 2 32 0.000
fib_iter gen 7 7 942 0.007
loops gen 3 2 300 0.009
fib_recursive gen 9 10 901 0.010
modules gen 2 1 198 0.010
asdl_generated gen 9 9 390 0.023
parse gen 29 23 800 0.036
scoped_resource gen 46 43 1,038 0.044
files gen 5 7 76 0.072
gc_stack_roots gen 1 0 11 0.077
containers gen 9 3 110 0.078
tuple_return_value gen 17 16 197 0.087
length gen 39 42 208 0.189
cartesian gen 84 77 332 0.252
escape gen 105 99 377 0.277
varargs gen 13 19 27 0.482
cgi gen 269 267 517 0.520
control_flow gen 205 161 116 1.765
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.3 4.3 12.3 0.35
gc_stack_roots gen 3.4 3.4 8.5 0.40
cgi gen 3.5 3.7 8.5 0.42
fib_recursive gen 3.5 3.9 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
modules gen 3.7 3.8 8.7 0.42
cartesian gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.8 3.8 8.3 0.46
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
modules gen 0 1 6 0.000
containers gen 3 7 34 0.095
gc_stack_roots gen 1 2 8 0.106
loops gen 1 1 8 0.118
fib_iter gen 1 1 7 0.135
cgi gen 1 2 6 0.167
parse gen 1 4 6 0.167
fib_recursive gen 2 1 9 0.216
scoped_resource gen 2 2 9 0.221
tuple_return_value gen 2 2 9 0.224
files gen 2 0 8 0.227
escape gen 2 5 7 0.284
asdl_generated gen 2 2 5 0.392
classes gen 3 1 8 0.392
control_flow gen 5 1 7 0.710
length gen 6 3 7 0.863
cartesian gen 8 8 8 1.009
varargs gen 26 20 25 1.042
pea_hello gen NA NA 5 NA

raw benchmark files