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
classes gen 0 0 34 0.000
gc_stack_roots gen 0 0 15 0.000
modules gen 0 2 198 0.000
fib_iter gen 8 7 890 0.008
fib_recursive gen 11 7 895 0.012
loops gen 4 3 292 0.012
asdl_generated gen 7 11 386 0.018
containers gen 4 0 105 0.036
parse gen 30 27 770 0.040
scoped_resource gen 43 35 1,027 0.042
files gen 7 7 73 0.100
tuple_return_value gen 20 18 186 0.105
length gen 41 38 211 0.196
cartesian gen 83 78 328 0.253
escape gen 104 114 360 0.290
varargs gen 8 27 24 0.345
cgi gen 268 249 524 0.512
control_flow gen 213 162 115 1.854
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
asdl_generated gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.5 8.4 0.42
fib_recursive gen 3.5 3.8 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
parse gen 3.9 3.8 9.1 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.9 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.5 8.7 0.44
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
control_flow gen 3.9 3.8 8.5 0.46
files gen 3.9 3.8 8.5 0.46
length gen 3.9 3.5 8.4 0.47
containers gen 28.5 28.5 49.2 0.58
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 4 4 0.000
control_flow gen 0 0 8 0.000
escape gen 0 4 4 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 4 8 0.000
files gen 0 0 12 0.000
loops gen 0 0 12 0.000
parse gen 0 0 12 0.000
tuple_return_value gen 0 0 12 0.000
containers gen 11 14 36 0.313
asdl_generated gen 4 0 8 0.447
gc_stack_roots gen 2 2 4 0.457
length gen 4 8 8 0.471
scoped_resource gen 4 12 8 0.492
cartesian gen 8 8 12 0.658
classes gen 3 3 4 0.766
varargs gen 57 38 55 1.035
modules gen 2 0 0 inf
pea_hello gen NA NA 7 NA

raw benchmark files