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 0 11 0.000
modules gen 1 2 188 0.005
fib_iter gen 8 6 935 0.008
loops gen 3 2 295 0.010
fib_recursive gen 11 10 890 0.012
asdl_generated gen 10 10 391 0.025
classes gen 1 1 29 0.035
parse gen 28 24 768 0.037
scoped_resource gen 41 45 1,052 0.039
containers gen 8 5 114 0.071
tuple_return_value gen 16 16 191 0.085
files gen 6 7 73 0.086
length gen 41 42 213 0.193
cartesian gen 84 80 337 0.250
escape gen 99 99 360 0.274
cgi gen 266 268 522 0.510
varargs gen 19 16 26 0.744
control_flow gen 207 159 116 1.781
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.3 4.3 12.3 0.35
parse gen 3.8 3.8 9.1 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
control_flow gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.5 0.43
files gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
asdl_generated gen 3.8 3.7 8.5 0.45
cartesian gen 3.8 3.5 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.9 3.8 8.4 0.47
containers gen 28.9 28.8 49.2 0.59
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 2 9 0.000
fib_recursive gen 0 1 7 0.000
modules gen 1 0 10 0.091
files gen 1 0 10 0.106
loops gen 1 1 9 0.112
containers gen 4 6 32 0.127
control_flow gen 1 4 7 0.143
parse gen 2 3 12 0.168
asdl_generated gen 1 1 6 0.178
gc_stack_roots gen 2 2 8 0.214
classes gen 2 2 9 0.227
tuple_return_value gen 3 2 10 0.288
cgi gen 4 0 9 0.445
length gen 3 3 6 0.503
scoped_resource gen 6 0 9 0.657
cartesian gen 7 7 10 0.703
varargs gen 20 23 28 0.727
escape gen 7 7 8 0.882
pea_hello gen NA NA 6 NA

raw benchmark files