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 2 12 0.000
modules gen 1 1 187 0.005
fib_iter gen 6 7 949 0.006
loops gen 3 1 295 0.009
fib_recursive gen 9 9 894 0.010
asdl_generated gen 10 10 377 0.026
parse gen 30 25 789 0.038
scoped_resource gen 46 41 1,041 0.044
containers gen 7 5 115 0.059
classes gen 2 2 31 0.067
tuple_return_value gen 19 15 192 0.097
files gen 7 4 75 0.097
length gen 38 42 211 0.181
cartesian gen 81 81 334 0.244
escape gen 101 98 357 0.283
cgi gen 265 265 537 0.494
varargs gen 17 12 29 0.581
control_flow gen 208 162 111 1.866
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.5 0.36
asdl_generated gen 3.5 3.7 8.5 0.42
escape gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
cartesian gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
length gen 3.7 3.9 8.4 0.44
scoped_resource gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
fib_recursive 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.8 8.5 0.46
containers gen 28.9 28.8 49.2 0.59
varargs gen 5.5 5.6 8.4 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
files gen 0 3 8 0.000
parse gen 0 2 10 0.000
asdl_generated gen 1 1 13 0.075
loops gen 1 2 11 0.082
modules gen 1 1 9 0.098
control_flow gen 1 1 10 0.099
classes gen 1 1 8 0.131
tuple_return_value gen 1 3 7 0.140
scoped_resource gen 1 4 6 0.167
containers gen 5 6 27 0.181
fib_iter gen 2 1 8 0.238
gc_stack_roots gen 2 0 7 0.250
fib_recursive gen 2 2 7 0.281
escape gen 5 5 9 0.555
cgi gen 4 4 6 0.665
length gen 7 3 10 0.703
varargs gen 23 28 25 0.913
cartesian gen 10 6 8 1.258
pea_hello gen NA NA 7 NA

raw benchmark files