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 12 0.000
modules gen 1 0 190 0.005
fib_iter gen 8 8 988 0.008
loops gen 3 2 302 0.009
fib_recursive gen 11 11 889 0.012
asdl_generated gen 10 10 398 0.024
parse gen 27 26 772 0.035
scoped_resource gen 42 42 1,041 0.041
containers gen 6 7 117 0.051
classes gen 2 1 30 0.070
files gen 6 6 75 0.074
tuple_return_value gen 18 16 196 0.093
length gen 40 44 212 0.190
cartesian gen 87 83 340 0.254
escape gen 100 97 367 0.273
cgi gen 251 270 525 0.478
varargs gen 15 15 28 0.536
control_flow gen 207 159 115 1.793
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.6 4.3 12.5 0.37
cgi gen 3.4 3.5 8.4 0.41
control_flow gen 3.7 3.8 8.5 0.43
gc_stack_roots gen 3.7 3.5 8.5 0.43
tuple_return_value gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
files gen 3.8 3.8 8.5 0.45
escape gen 3.8 3.5 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
scoped_resource gen 3.8 3.8 8.4 0.45
loops gen 3.9 3.8 8.5 0.46
modules gen 3.9 3.5 8.5 0.46
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.5 5.6 8.4 0.66
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 0 6 0.000
fib_recursive gen 0 0 9 0.000
modules gen 1 2 9 0.100
classes gen 1 2 9 0.116
asdl_generated gen 1 1 7 0.139
loops gen 1 1 6 0.156
tuple_return_value gen 1 2 5 0.202
files gen 2 1 9 0.205
containers gen 6 3 28 0.213
gc_stack_roots gen 2 1 7 0.246
parse gen 3 2 10 0.301
cgi gen 4 1 10 0.400
control_flow gen 3 1 7 0.431
cartesian gen 5 4 9 0.552
length gen 4 1 7 0.575
scoped_resource gen 5 3 7 0.703
varargs gen 24 25 25 0.960
escape gen 6 7 4 1.506
pea_hello gen NA NA 7 NA

raw benchmark files