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
fib_iter gen 5 8 887 0.005
fib_recursive gen 7 11 893 0.008
modules gen 2 2 185 0.010
loops gen 4 0 300 0.013
asdl_generated gen 7 4 381 0.019
parse gen 27 27 778 0.034
scoped_resource gen 45 41 1,027 0.044
tuple_return_value gen 15 18 192 0.080
files gen 8 4 77 0.098
containers gen 12 5 113 0.104
classes gen 3 0 26 0.124
length gen 40 41 208 0.195
gc_stack_roots gen 2 2 8 0.217
cartesian gen 92 70 332 0.277
escape gen 107 103 353 0.302
cgi gen 251 253 525 0.477
varargs gen 25 16 24 1.032
control_flow gen 216 162 119 1.816
pea_hello gen NA NA 11 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.6 4.5 12.5 0.37
gc_stack_roots gen 3.4 3.5 8.5 0.40
cartesian gen 3.5 3.7 8.5 0.42
cgi gen 3.5 3.7 8.5 0.42
length gen 3.5 3.8 8.4 0.42
parse gen 3.9 3.8 9.1 0.43
escape gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
files gen 3.7 3.8 8.3 0.44
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
asdl_generated gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
containers gen 28.5 28.5 49.1 0.58
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
cartesian gen 0 16 8 0.000
classes gen 0 3 13 0.000
control_flow gen 0 0 4 0.000
escape gen 0 0 12 0.000
files gen 0 4 8 0.000
gc_stack_roots gen 0 0 12 0.000
loops gen 0 3 8 0.000
modules gen 0 0 12 0.000
containers gen 4 10 32 0.121
scoped_resource gen 4 4 16 0.254
fib_iter gen 5 0 16 0.290
parse gen 4 0 12 0.317
length gen 4 4 12 0.338
asdl_generated gen 4 8 8 0.449
fib_recursive gen 4 0 8 0.452
tuple_return_value gen 4 0 8 0.481
cgi gen 4 0 8 0.496
varargs gen 41 49 56 0.737
pea_hello gen NA NA 7 NA

raw benchmark files