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 196 0.000
fib_iter gen 6 7 910 0.006
loops gen 2 3 300 0.008
fib_recursive gen 9 10 895 0.010
asdl_generated gen 8 10 387 0.020
parse gen 26 23 773 0.034
scoped_resource gen 42 42 1,061 0.040
containers gen 8 5 119 0.066
files gen 5 7 75 0.073
tuple_return_value gen 15 16 193 0.078
classes gen 3 2 31 0.098
gc_stack_roots gen 2 1 14 0.128
length gen 37 44 209 0.178
cartesian gen 85 84 337 0.251
escape gen 103 96 359 0.288
cgi gen 267 265 526 0.509
varargs gen 17 16 26 0.651
control_flow gen 213 165 114 1.866
pea_hello gen NA NA 10 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.3 12.3 0.36
gc_stack_roots gen 3.5 3.4 8.5 0.42
scoped_resource gen 3.5 3.5 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
fib_iter gen 3.8 3.9 8.5 0.45
length gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.7 8.4 0.47
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.6 5.4 8.5 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 1 6 0.000
control_flow gen 0 3 7 0.000
gc_stack_roots gen 0 1 5 0.000
containers gen 4 5 24 0.164
fib_recursive gen 2 1 10 0.195
loops gen 1 0 6 0.200
cgi gen 2 4 9 0.222
modules gen 2 1 7 0.247
files gen 2 0 7 0.259
escape gen 3 7 9 0.334
fib_iter gen 2 1 5 0.378
parse gen 4 4 10 0.389
tuple_return_value gen 4 2 8 0.504
asdl_generated gen 3 1 5 0.586
length gen 7 2 10 0.706
varargs gen 22 23 26 0.843
scoped_resource gen 5 3 4 1.252
cartesian gen 7 3 4 1.740
pea_hello gen NA NA 8 NA

raw benchmark files