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 1 190 0.005
fib_iter gen 8 9 942 0.009
loops gen 3 2 303 0.009
fib_recursive gen 9 10 899 0.010
asdl_generated gen 13 10 391 0.034
parse gen 31 26 768 0.040
scoped_resource gen 48 42 1,043 0.046
containers gen 7 7 117 0.061
files gen 7 6 78 0.088
tuple_return_value gen 19 18 196 0.095
classes gen 3 2 28 0.103
gc_stack_roots gen 1 0 9 0.110
length gen 40 45 213 0.187
cartesian gen 89 82 339 0.263
escape gen 105 98 360 0.292
cgi gen 266 268 527 0.505
varargs gen 19 26 25 0.754
control_flow gen 212 163 117 1.815
pea_hello gen NA NA 13 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.5 0.36
gc_stack_roots gen 3.4 3.7 8.5 0.40
parse gen 3.7 3.8 9.1 0.40
cartesian gen 3.5 3.7 8.5 0.42
escape gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
asdl_generated gen 3.8 3.5 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
control_flow gen 3.8 3.9 8.4 0.45
fib_iter gen 3.8 3.5 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
modules gen 3.9 3.7 8.5 0.46
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.5 8.3 0.67
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 3 7 0.000
control_flow gen 0 0 6 0.000
classes gen 1 1 11 0.087
gc_stack_roots gen 1 2 11 0.090
files gen 1 2 8 0.123
fib_iter gen 1 0 7 0.145
modules gen 1 1 6 0.166
containers gen 5 4 30 0.167
parse gen 2 2 10 0.203
loops gen 2 1 6 0.311
fib_recursive gen 2 1 6 0.342
scoped_resource gen 2 5 5 0.406
cartesian gen 4 6 9 0.446
tuple_return_value gen 2 1 4 0.487
escape gen 4 9 8 0.499
length gen 5 2 8 0.620
varargs gen 22 15 30 0.727
cgi gen 7 2 6 1.167
pea_hello gen NA NA 5 NA

raw benchmark files