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 0 1 192 0.000
fib_iter gen 8 7 902 0.008
loops gen 3 3 300 0.009
fib_recursive gen 9 11 900 0.010
asdl_generated gen 9 9 391 0.022
classes gen 1 3 32 0.024
parse gen 28 24 779 0.036
scoped_resource gen 43 41 1,054 0.041
containers gen 7 5 125 0.059
gc_stack_roots gen 1 0 12 0.072
files gen 6 6 76 0.082
tuple_return_value gen 17 14 193 0.089
length gen 43 43 209 0.205
cartesian gen 84 82 338 0.250
escape gen 98 100 354 0.276
cgi gen 267 269 528 0.505
varargs gen 18 12 29 0.613
control_flow gen 207 160 120 1.725
pea_hello gen NA NA 15 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
scoped_resource gen 3.5 3.7 8.5 0.42
cartesian 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
modules gen 3.7 3.7 8.7 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.9 3.7 8.5 0.46
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.4 5.6 8.4 0.64
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 4 0.000
loops gen 1 0 11 0.082
gc_stack_roots gen 1 2 7 0.124
fib_recursive gen 2 0 12 0.162
files gen 1 2 6 0.173
parse gen 2 3 11 0.183
containers gen 4 5 19 0.221
control_flow gen 2 3 8 0.250
modules gen 2 1 7 0.251
length gen 2 3 7 0.285
tuple_return_value gen 2 4 7 0.288
asdl_generated gen 2 2 5 0.391
cgi gen 3 2 7 0.429
classes gen 2 0 5 0.462
scoped_resource gen 4 4 8 0.499
cartesian gen 7 4 9 0.781
varargs gen 22 28 23 0.945
escape gen 8 3 8 1.003
pea_hello gen NA NA 3 NA

raw benchmark files