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 2 191 0.000
loops gen 3 2 334 0.007
fib_iter gen 7 8 908 0.008
fib_recursive gen 9 10 892 0.010
asdl_generated gen 10 11 401 0.025
parse gen 27 26 773 0.035
scoped_resource gen 46 42 1,049 0.044
containers gen 6 5 120 0.051
classes gen 2 3 30 0.059
gc_stack_roots gen 1 0 13 0.067
tuple_return_value gen 16 18 199 0.081
files gen 7 7 75 0.100
length gen 38 40 207 0.185
cartesian gen 85 75 332 0.256
escape gen 102 97 364 0.281
cgi gen 264 264 529 0.499
varargs gen 15 20 27 0.563
control_flow gen 211 158 119 1.772
pea_hello gen NA NA 13 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.4 8.5 0.40
asdl_generated gen 3.5 3.5 8.5 0.42
cgi gen 3.5 3.7 8.5 0.42
control_flow gen 3.7 3.9 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.7 9.0 0.44
cartesian gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.7 3.8 8.4 0.44
files gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
fib_iter gen 3.7 3.8 8.3 0.44
length gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
containers gen 28.8 28.6 49.1 0.59
varargs gen 5.5 5.6 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
control_flow gen 0 4 5 0.000
files gen 0 0 9 0.000
scoped_resource gen 1 4 11 0.091
asdl_generated gen 1 0 8 0.128
gc_stack_roots gen 1 2 6 0.145
fib_iter gen 1 0 6 0.168
classes gen 2 0 9 0.196
loops gen 2 1 8 0.209
fib_recursive gen 2 1 9 0.218
modules gen 2 0 9 0.218
containers gen 6 5 25 0.243
tuple_return_value gen 3 1 7 0.433
length gen 6 5 11 0.537
cartesian gen 6 11 10 0.602
parse gen 3 1 5 0.606
cgi gen 6 5 8 0.750
varargs gen 24 20 27 0.902
escape gen 6 7 5 1.204
pea_hello gen NA NA 5 NA

raw benchmark files