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 8 0.000
modules gen 1 1 188 0.005
loops gen 2 2 315 0.006
fib_iter gen 7 8 893 0.007
fib_recursive gen 10 11 932 0.010
asdl_generated gen 10 8 389 0.025
parse gen 27 23 777 0.034
containers gen 6 7 118 0.050
scoped_resource gen 61 45 1,033 0.059
classes gen 2 2 29 0.080
tuple_return_value gen 18 17 193 0.095
files gen 7 5 75 0.099
length gen 38 39 211 0.179
cartesian gen 87 79 329 0.263
escape gen 100 97 355 0.282
cgi gen 269 249 528 0.509
varargs gen 20 12 24 0.842
control_flow gen 207 162 120 1.725
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.5 4.5 12.3 0.36
gc_stack_roots gen 3.4 3.5 8.4 0.41
parse gen 3.8 3.8 9.0 0.42
cgi gen 3.7 3.5 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.5 8.5 0.45
fib_recursive gen 3.8 3.9 8.5 0.45
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.9 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.9 28.9 49.1 0.59
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
files gen 0 3 8 0.000
modules gen 1 1 8 0.110
fib_iter gen 1 0 8 0.119
cgi gen 1 5 8 0.125
classes gen 1 1 9 0.130
fib_recursive gen 1 0 7 0.140
asdl_generated gen 1 3 7 0.140
tuple_return_value gen 1 1 7 0.146
gc_stack_roots gen 2 2 11 0.156
control_flow gen 1 1 5 0.200
loops gen 2 1 9 0.213
containers gen 6 4 24 0.244
scoped_resource gen 3 1 7 0.428
parse gen 4 4 9 0.438
varargs gen 19 27 29 0.662
cartesian gen 7 7 10 0.705
length gen 7 8 8 0.872
escape gen 7 6 8 0.875
pea_hello gen NA NA 7 NA

raw benchmark files