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 2 186 0.005
loops gen 2 1 312 0.006
fib_iter gen 5 6 893 0.006
fib_recursive gen 11 10 887 0.012
asdl_generated gen 7 9 386 0.018
classes gen 1 2 30 0.034
parse gen 30 23 774 0.039
scoped_resource gen 43 42 1,033 0.041
containers gen 8 5 123 0.063
gc_stack_roots gen 1 0 12 0.068
files gen 7 7 79 0.083
tuple_return_value gen 17 19 195 0.088
length gen 42 41 213 0.197
cartesian gen 84 81 332 0.253
escape gen 102 94 359 0.284
cgi gen 266 265 526 0.507
varargs gen 20 19 20 0.976
control_flow gen 209 161 117 1.782
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.5 4.5 12.5 0.36
cgi gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
escape gen 3.7 3.5 8.5 0.43
fib_recursive gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
loops gen 3.7 3.9 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
fib_iter gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.3 0.46
control_flow gen 3.9 3.9 8.5 0.46
files gen 3.9 3.8 8.5 0.46
containers gen 28.8 28.6 48.9 0.59
varargs gen 5.6 5.5 8.4 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
fib_recursive gen 0 1 9 0.000
parse gen 0 4 9 0.000
modules gen 1 0 11 0.078
files gen 1 1 7 0.133
gc_stack_roots gen 1 2 6 0.137
containers gen 4 5 21 0.183
fib_iter gen 2 2 9 0.238
tuple_return_value gen 2 0 8 0.252
classes gen 2 1 8 0.255
control_flow gen 2 1 7 0.285
loops gen 2 2 6 0.304
cgi gen 3 4 6 0.500
escape gen 3 10 6 0.501
varargs gen 20 21 32 0.610
scoped_resource gen 5 3 8 0.623
length gen 3 4 4 0.750
asdl_generated gen 4 2 5 0.786
cartesian gen 8 5 8 0.998
pea_hello gen NA NA 8 NA

raw benchmark files