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
loops gen 1 3 300 0.003
modules gen 1 2 191 0.004
fib_iter gen 7 6 902 0.007
fib_recursive gen 10 10 909 0.011
asdl_generated gen 10 8 383 0.025
parse gen 27 24 781 0.034
scoped_resource gen 42 41 1,037 0.040
gc_stack_roots gen 1 1 13 0.067
classes gen 2 2 30 0.069
containers gen 8 4 111 0.074
files gen 6 5 78 0.081
tuple_return_value gen 18 14 192 0.095
length gen 37 43 212 0.174
cartesian gen 82 79 335 0.245
escape gen 100 99 361 0.277
cgi gen 259 270 526 0.491
varargs gen 17 16 27 0.632
control_flow gen 204 166 121 1.690
pea_hello gen NA NA 8 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.3 12.3 0.36
cgi gen 3.4 3.7 8.5 0.40
gc_stack_roots gen 3.4 3.4 8.5 0.40
fib_iter gen 3.5 3.8 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
files gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.7 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
length gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.3 0.46
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.9 49.2 0.58
varargs gen 5.5 5.5 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
fib_iter gen 1 2 9 0.105
fib_recursive gen 1 1 8 0.124
gc_stack_roots gen 1 1 7 0.124
tuple_return_value gen 1 4 8 0.126
containers gen 4 6 32 0.128
classes gen 1 1 8 0.128
asdl_generated gen 1 3 7 0.137
modules gen 1 0 6 0.143
files gen 1 3 5 0.210
parse gen 3 3 8 0.374
cgi gen 3 1 8 0.375
loops gen 3 0 7 0.393
control_flow gen 2 2 5 0.401
scoped_resource gen 6 4 8 0.746
length gen 8 3 10 0.801
varargs gen 22 23 27 0.818
escape gen 6 4 7 0.857
cartesian gen 9 7 7 1.286
pea_hello gen NA NA 9 NA

raw benchmark files