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 4 39 0.000
fib_recursive gen 7 11 879 0.008
fib_iter gen 8 8 891 0.009
modules gen 2 2 185 0.011
loops gen 4 3 297 0.013
asdl_generated gen 11 8 390 0.028
scoped_resource gen 37 42 1,057 0.035
parse gen 28 23 784 0.035
containers gen 8 0 123 0.064
files gen 8 8 81 0.095
tuple_return_value gen 19 15 201 0.096
gc_stack_roots gen 2 0 12 0.152
length gen 44 38 211 0.210
cartesian gen 84 79 339 0.248
escape gen 89 93 351 0.255
cgi gen 269 249 526 0.512
varargs gen 23 21 31 0.767
control_flow gen 198 164 119 1.674
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
parse gen 3.7 3.9 9.1 0.40
gc_stack_roots gen 3.4 3.4 8.4 0.41
asdl_generated gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
length gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
files gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.6 49.1 0.58
varargs gen 5.4 5.5 8.5 0.63
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 8 0.000
cgi gen 0 4 4 0.000
fib_iter gen 0 0 12 0.000
files gen 0 0 4 0.000
gc_stack_roots gen 0 2 8 0.000
length gen 0 8 4 0.000
loops gen 0 0 12 0.000
modules gen 0 0 12 0.000
tuple_return_value gen 0 4 4 0.000
parse gen 4 4 16 0.246
fib_recursive gen 4 0 12 0.300
containers gen 8 15 24 0.332
varargs gen 43 45 50 0.865
cartesian gen 8 8 8 1.002
escape gen 16 8 12 1.299
control_flow gen 8 0 4 1.942
scoped_resource gen 11 4 4 2.762
classes gen 3 0 0 inf
pea_hello gen NA NA 7 NA

raw benchmark files