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 14 0.000
modules gen 0 1 196 0.000
fib_iter gen 7 8 949 0.007
loops gen 3 2 298 0.009
fib_recursive gen 10 9 908 0.011
asdl_generated gen 10 9 386 0.025
classes gen 1 2 30 0.027
parse gen 27 22 781 0.035
containers gen 5 6 118 0.044
scoped_resource gen 45 44 1,036 0.044
tuple_return_value gen 17 17 192 0.090
files gen 7 7 79 0.093
length gen 45 41 209 0.214
cartesian gen 82 79 331 0.249
escape gen 102 101 360 0.284
cgi gen 254 269 529 0.480
varargs gen 14 13 19 0.737
control_flow gen 207 162 113 1.830
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.5 4.5 12.3 0.36
gc_stack_roots gen 3.4 3.5 8.4 0.41
cartesian gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.9 9.0 0.42
escape gen 3.7 3.5 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
fib_iter gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.9 28.9 49.1 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 1 5 0.000
fib_recursive gen 1 2 12 0.082
length gen 1 4 9 0.113
asdl_generated gen 1 2 8 0.123
fib_iter gen 1 0 7 0.135
loops gen 2 1 9 0.189
tuple_return_value gen 2 2 9 0.226
control_flow gen 2 3 8 0.250
parse gen 3 5 12 0.250
containers gen 7 5 28 0.257
classes gen 2 1 9 0.267
scoped_resource gen 3 2 11 0.274
gc_stack_roots gen 2 0 5 0.357
modules gen 2 1 5 0.362
cgi gen 5 2 10 0.500
escape gen 6 3 8 0.751
varargs gen 26 27 34 0.765
cartesian gen 9 7 9 0.994
pea_hello gen NA NA 10 NA

raw benchmark files