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 193 0.000
fib_iter gen 7 8 899 0.008
fib_recursive gen 9 11 956 0.009
loops gen 3 3 294 0.009
asdl_generated gen 9 9 404 0.021
parse gen 29 22 784 0.037
scoped_resource gen 42 43 1,064 0.040
containers gen 6 6 131 0.045
classes gen 2 1 29 0.070
tuple_return_value gen 17 16 193 0.089
files gen 7 5 76 0.095
gc_stack_roots gen 2 1 15 0.117
length gen 43 42 211 0.203
cartesian gen 83 81 330 0.252
escape gen 100 96 362 0.277
cgi gen 252 266 537 0.469
varargs gen 13 15 21 0.619
control_flow gen 212 159 115 1.840
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.3 4.3 12.3 0.35
asdl_generated gen 3.5 3.5 8.4 0.42
cartesian gen 3.5 3.7 8.4 0.42
files gen 3.5 3.8 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
parse gen 3.8 3.9 8.9 0.42
cgi gen 3.7 3.5 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
escape gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
control_flow gen 3.8 3.7 8.3 0.46
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.6 5.5 8.5 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
fib_iter gen 0 0 6 0.000
files gen 0 3 7 0.000
gc_stack_roots gen 0 1 7 0.000
loops gen 1 0 9 0.102
classes gen 1 2 9 0.112
control_flow gen 1 2 8 0.125
modules gen 2 1 8 0.216
parse gen 2 5 9 0.220
cgi gen 2 2 7 0.285
containers gen 6 5 20 0.293
fib_recursive gen 2 0 6 0.326
tuple_return_value gen 2 2 6 0.336
asdl_generated gen 2 2 6 0.355
length gen 2 3 3 0.662
varargs gen 27 25 32 0.843
scoped_resource gen 5 3 5 1.006
cartesian gen 8 5 7 1.145
escape gen 6 8 2 2.977
pea_hello gen NA NA 12 NA

raw benchmark files