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 3 24 0.000
fib_iter gen 8 4 927 0.008
modules gen 2 0 187 0.010
fib_recursive gen 11 11 902 0.012
loops gen 4 0 298 0.013
asdl_generated gen 7 11 384 0.019
parse gen 26 19 781 0.033
scoped_resource gen 48 34 1,038 0.046
containers gen 10 10 132 0.078
files gen 7 7 79 0.092
tuple_return_value gen 19 15 186 0.104
gc_stack_roots gen 2 0 12 0.145
length gen 37 38 213 0.175
cartesian gen 88 82 332 0.265
escape gen 102 104 356 0.287
varargs gen 12 16 34 0.360
cgi gen 263 255 523 0.502
control_flow gen 207 159 110 1.875
pea_hello gen NA NA 15 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.5 12.2 0.38
cgi gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.5 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
gc_stack_roots gen 3.7 3.4 8.4 0.44
length gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.8 8.3 0.44
files gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
tuple_return_value gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 12 8 0.000
control_flow gen 0 4 12 0.000
fib_iter gen 0 4 12 0.000
fib_recursive gen 0 0 4 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 8 0.000
loops gen 0 3 8 0.000
modules gen 0 2 8 0.000
scoped_resource gen 0 11 4 0.000
tuple_return_value gen 0 4 12 0.000
classes gen 4 0 16 0.236
asdl_generated gen 4 0 12 0.301
escape gen 4 0 12 0.328
cartesian gen 4 4 8 0.501
containers gen 5 5 8 0.647
length gen 7 8 8 0.925
parse gen 4 8 4 1.080
varargs gen 53 49 46 1.170
pea_hello gen NA NA 4 NA

raw benchmark files