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 192 0.000
fib_iter gen 6 6 891 0.006
fib_recursive gen 10 10 888 0.011
loops gen 4 2 303 0.012
asdl_generated gen 9 8 388 0.022
parse gen 26 25 781 0.033
scoped_resource gen 48 46 1,052 0.045
containers gen 6 8 124 0.049
classes gen 2 1 28 0.075
tuple_return_value gen 17 17 195 0.086
files gen 7 5 75 0.088
length gen 41 39 218 0.188
cartesian gen 85 78 340 0.249
escape gen 98 101 362 0.272
cgi gen 269 269 536 0.502
varargs gen 20 17 23 0.866
control_flow gen 211 160 118 1.791
pea_hello gen NA NA 10 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
parse gen 3.7 3.8 9.1 0.40
asdl_generated gen 3.5 3.5 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
files gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
modules gen 3.9 3.7 8.5 0.46
containers gen 28.9 28.9 49.1 0.59
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
loops gen 0 1 9 0.000
scoped_resource gen 0 1 7 0.000
classes gen 1 2 10 0.105
fib_recursive gen 1 1 9 0.113
files gen 1 3 8 0.137
cgi gen 1 2 7 0.143
control_flow gen 1 3 6 0.165
fib_iter gen 2 1 8 0.240
gc_stack_roots gen 2 1 8 0.247
asdl_generated gen 2 3 8 0.269
modules gen 2 1 6 0.291
containers gen 6 3 20 0.307
parse gen 4 2 12 0.334
tuple_return_value gen 3 1 5 0.590
length gen 3 7 5 0.601
varargs gen 20 23 31 0.643
cartesian gen 7 8 7 0.995
escape gen 7 3 5 1.405
pea_hello gen NA NA 8 NA

raw benchmark files