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 0 31 0.000
gc_stack_roots gen 0 2 12 0.000
loops gen 0 3 302 0.000
fib_iter gen 8 8 894 0.008
modules gen 2 2 187 0.010
fib_recursive gen 11 11 882 0.012
asdl_generated gen 11 8 387 0.028
scoped_resource gen 39 41 1,025 0.038
parse gen 30 27 778 0.039
tuple_return_value gen 15 19 190 0.081
containers gen 10 0 107 0.097
files gen 8 7 72 0.108
length gen 38 37 216 0.175
cartesian gen 87 85 343 0.255
escape gen 97 89 366 0.264
cgi gen 246 268 525 0.469
varargs gen 16 25 28 0.563
control_flow gen 202 161 111 1.824
pea_hello gen NA NA 7 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
fib_recursive gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
files gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.7 8.5 0.43
modules gen 3.8 3.8 8.7 0.44
loops gen 3.8 3.8 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.9 8.4 0.45
fib_iter gen 3.8 3.7 8.4 0.45
containers gen 28.5 28.6 49.2 0.58
varargs gen 5.5 5.4 8.5 0.65
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 4 12 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 0 12 0.000
modules gen 0 0 8 0.000
parse gen 0 0 4 0.000
containers gen 5 14 36 0.145
gc_stack_roots gen 2 0 8 0.214
tuple_return_value gen 4 0 12 0.324
control_flow gen 4 0 12 0.334
classes gen 3 3 8 0.414
loops gen 4 0 4 0.920
scoped_resource gen 8 4 8 0.982
varargs gen 50 41 51 0.986
cgi gen 8 0 8 0.990
cartesian gen 4 4 4 0.996
escape gen 8 12 8 1.010
length gen 8 8 4 1.887
pea_hello gen NA NA 11 NA

raw benchmark files