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 0 189 0.005
fib_iter gen 7 7 902 0.008
loops gen 3 2 298 0.009
fib_recursive gen 10 10 886 0.011
asdl_generated gen 9 9 386 0.023
parse gen 24 25 800 0.030
classes gen 1 2 30 0.030
scoped_resource gen 44 43 1,070 0.041
files gen 5 6 79 0.067
containers gen 8 5 120 0.068
gc_stack_roots gen 1 2 13 0.071
tuple_return_value gen 17 16 195 0.088
length gen 41 39 208 0.198
cartesian gen 81 81 343 0.236
escape gen 99 98 365 0.271
cgi gen 266 272 534 0.498
varargs gen 21 15 21 1.007
control_flow gen 204 162 118 1.726
pea_hello gen NA NA 14 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.5 3.5 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
cgi gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.9 8.4 0.44
files gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
asdl_generated gen 3.8 3.5 8.5 0.45
escape gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.6 8.5 0.65
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_recursive gen 1 1 12 0.083
modules gen 1 2 9 0.113
gc_stack_roots gen 1 0 8 0.116
loops gen 1 1 7 0.134
containers gen 4 5 28 0.146
fib_iter gen 1 1 6 0.168
asdl_generated gen 2 2 8 0.248
scoped_resource gen 3 3 10 0.302
classes gen 3 2 8 0.334
files gen 2 2 6 0.351
tuple_return_value gen 3 2 7 0.432
cgi gen 4 0 8 0.501
length gen 4 7 8 0.502
varargs gen 18 25 32 0.566
parse gen 7 2 12 0.575
control_flow gen 4 0 6 0.669
escape gen 7 8 6 1.166
cartesian gen 11 6 8 1.374
pea_hello gen NA NA 4 NA

raw benchmark files