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 206 0.004
fib_iter gen 5 7 911 0.005
fib_recursive gen 10 10 888 0.011
loops gen 4 2 304 0.012
asdl_generated gen 11 10 384 0.028
parse gen 28 24 774 0.037
scoped_resource gen 44 42 1,022 0.043
containers gen 7 6 116 0.058
gc_stack_roots gen 1 0 11 0.075
files gen 6 5 76 0.084
tuple_return_value gen 18 14 193 0.094
classes gen 3 2 31 0.098
length gen 36 41 218 0.166
cartesian gen 80 81 355 0.225
escape gen 104 100 362 0.286
cgi gen 268 267 528 0.508
varargs gen 17 24 25 0.689
control_flow gen 210 162 119 1.759
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.3 0.36
asdl_generated gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
cgi gen 3.7 3.5 8.5 0.43
fib_iter gen 3.7 3.8 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.9 3.8 8.5 0.46
control_flow gen 3.9 3.8 8.4 0.47
fib_recursive gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.9 49.2 0.58
varargs gen 5.5 5.5 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
asdl_generated gen 0 1 5 0.000
classes gen 0 1 8 0.000
control_flow gen 0 1 4 0.000
loops gen 0 1 6 0.000
gc_stack_roots gen 1 2 8 0.103
fib_recursive gen 1 1 8 0.122
modules gen 1 1 7 0.123
files gen 1 3 7 0.130
tuple_return_value gen 1 4 7 0.144
containers gen 5 4 24 0.200
parse gen 2 3 9 0.225
escape gen 2 4 7 0.287
fib_iter gen 3 1 8 0.355
scoped_resource gen 4 4 10 0.398
cgi gen 3 1 5 0.599
length gen 8 5 11 0.730
varargs gen 22 17 28 0.796
cartesian gen 11 6 10 1.100
pea_hello gen NA NA 6 NA

raw benchmark files