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 190 0.000
fib_iter gen 8 8 903 0.008
loops gen 3 2 299 0.009
fib_recursive gen 11 10 920 0.012
asdl_generated gen 8 8 387 0.020
parse gen 28 25 781 0.036
classes gen 1 2 28 0.036
scoped_resource gen 46 43 1,031 0.044
containers gen 6 5 117 0.051
tuple_return_value gen 17 14 273 0.063
files gen 5 6 79 0.065
gc_stack_roots gen 2 0 11 0.153
length gen 41 42 215 0.190
cartesian gen 84 82 377 0.222
escape gen 99 100 425 0.234
cgi gen 267 265 534 0.500
varargs gen 16 13 20 0.807
control_flow gen 207 162 113 1.837
pea_hello gen NA NA 9 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.3 4.3 12.3 0.35
gc_stack_roots gen 3.4 3.4 8.4 0.41
cgi gen 3.5 3.5 8.5 0.42
length gen 3.5 3.8 8.5 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.5 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.9 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
control_flow gen 3.8 3.9 8.7 0.44
modules gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.9 8.4 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
containers gen 28.6 28.8 49.1 0.58
varargs gen 5.6 5.6 8.4 0.67
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 0 8 0.000
fib_recursive gen 0 1 7 0.000
gc_stack_roots gen 0 2 8 0.000
loops gen 1 1 10 0.093
scoped_resource gen 2 2 13 0.156
modules gen 2 1 9 0.195
classes gen 2 1 10 0.203
parse gen 2 2 9 0.223
containers gen 6 6 25 0.237
tuple_return_value gen 2 4 8 0.254
control_flow gen 3 1 9 0.333
asdl_generated gen 3 3 8 0.366
files gen 2 2 5 0.411
cgi gen 3 2 7 0.429
length gen 4 3 6 0.665
varargs gen 23 27 33 0.703
escape gen 6 3 5 1.192
cartesian gen 8 6 6 1.327
pea_hello gen NA NA 9 NA

raw benchmark files