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
gc_stack_roots gen 0 1 11 0.000
modules gen 0 1 189 0.000
fib_iter gen 7 6 905 0.007
loops gen 3 1 295 0.011
fib_recursive gen 10 10 945 0.011
asdl_generated gen 9 10 386 0.023
parse gen 28 26 774 0.036
scoped_resource gen 45 39 1,082 0.041
classes gen 2 2 30 0.069
containers gen 9 7 124 0.069
tuple_return_value gen 18 18 193 0.095
files gen 7 5 77 0.096
length gen 44 43 217 0.202
cartesian gen 86 77 333 0.259
escape gen 101 98 363 0.277
cgi gen 266 263 533 0.499
varargs gen 17 20 28 0.612
control_flow gen 208 161 114 1.831
pea_hello gen NA NA 12 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.6 4.3 12.3 0.37
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
gc_stack_roots gen 3.7 3.4 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cartesian gen 3.7 3.7 8.4 0.44
files gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.5 8.3 0.44
escape gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.9 8.5 0.45
fib_iter gen 3.8 3.5 8.4 0.45
fib_recursive gen 3.8 3.5 8.4 0.45
length gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.5 5.5 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
files gen 0 3 9 0.000
loops gen 1 2 13 0.080
length gen 1 3 10 0.100
fib_recursive gen 1 1 10 0.100
classes gen 1 1 8 0.133
containers gen 3 4 23 0.139
fib_iter gen 1 2 6 0.158
tuple_return_value gen 1 0 6 0.161
modules gen 2 1 8 0.216
gc_stack_roots gen 2 1 8 0.217
control_flow gen 2 0 8 0.250
asdl_generated gen 2 1 7 0.281
parse gen 3 1 10 0.297
scoped_resource gen 3 7 7 0.427
cartesian gen 5 9 8 0.627
escape gen 5 7 7 0.717
varargs gen 22 19 26 0.853
cgi gen 4 6 4 1.000
pea_hello gen NA NA 6 NA

raw benchmark files