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 1 14 0.000
modules gen 1 0 200 0.004
fib_iter gen 8 5 1,129 0.007
loops gen 3 2 311 0.009
fib_recursive gen 10 9 906 0.011
asdl_generated gen 10 9 387 0.026
parse gen 23 22 774 0.030
classes gen 1 2 28 0.037
scoped_resource gen 46 44 1,043 0.044
containers gen 7 8 114 0.062
files gen 6 5 78 0.080
tuple_return_value gen 18 16 194 0.094
length gen 40 42 213 0.187
cartesian gen 98 79 345 0.283
escape gen 106 97 355 0.299
cgi gen 250 267 527 0.474
varargs gen 20 20 29 0.700
control_flow gen 211 162 116 1.821
pea_hello gen NA NA 13 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.3 4.5 12.2 0.35
asdl_generated gen 3.5 3.5 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
modules gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
escape gen 3.8 3.7 8.4 0.45
files 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
fib_iter gen 3.9 3.7 8.5 0.46
containers gen 28.8 28.9 49.0 0.59
varargs gen 5.5 5.4 8.5 0.65
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 3 9 0.000
fib_recursive gen 1 2 10 0.099
asdl_generated gen 1 2 8 0.124
files gen 1 2 8 0.131
loops gen 1 1 7 0.132
control_flow gen 1 1 7 0.143
tuple_return_value gen 1 2 7 0.145
containers gen 5 3 31 0.164
classes gen 2 1 11 0.194
modules gen 1 2 4 0.219
scoped_resource gen 2 4 8 0.250
gc_stack_roots gen 2 1 5 0.339
length gen 6 4 11 0.545
parse gen 7 5 10 0.682
cartesian gen 7 7 9 0.776
varargs gen 19 19 24 0.803
cgi gen 6 3 7 0.857
escape gen 5 7 5 1.000
pea_hello gen NA NA 5 NA

raw benchmark files