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
gc_stack_roots gen 0 0 11 0.000
fib_iter gen 7 6 897 0.007
modules gen 2 1 189 0.009
loops gen 3 2 304 0.010
fib_recursive gen 9 10 890 0.011
asdl_generated gen 10 10 386 0.026
parse gen 26 23 785 0.033
scoped_resource gen 44 44 1,038 0.042
containers gen 6 6 123 0.047
classes gen 2 2 25 0.081
tuple_return_value gen 16 17 196 0.083
files gen 7 5 77 0.090
length gen 38 41 212 0.179
cartesian gen 85 84 338 0.253
escape gen 98 100 355 0.277
cgi gen 268 268 528 0.508
varargs gen 14 21 23 0.599
control_flow gen 209 162 116 1.801
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.5 0.36
cgi gen 3.5 3.5 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.5 8.4 0.42
cartesian gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.9 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
modules gen 3.8 3.8 8.7 0.44
fib_recursive gen 3.8 3.9 8.5 0.45
length 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.5 8.4 0.45
files gen 3.8 3.8 8.4 0.45
control_flow gen 3.8 3.7 8.3 0.46
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.4 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
modules gen 0 1 7 0.000
classes gen 1 1 13 0.081
asdl_generated gen 1 1 9 0.112
fib_iter gen 1 1 7 0.134
files gen 1 2 6 0.164
loops gen 1 1 5 0.198
gc_stack_roots gen 2 2 8 0.213
containers gen 6 5 22 0.262
fib_recursive gen 2 1 6 0.315
cgi gen 3 2 9 0.332
parse gen 4 4 12 0.337
control_flow gen 3 2 7 0.428
tuple_return_value gen 3 2 6 0.508
scoped_resource gen 4 1 7 0.570
cartesian gen 6 3 9 0.671
length gen 6 4 7 0.860
varargs gen 26 19 30 0.885
escape gen 7 5 6 1.173
pea_hello gen NA NA 6 NA

raw benchmark files