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
fib_iter gen 8 8 941 0.008
modules gen 2 2 192 0.009
loops gen 3 2 302 0.009
fib_recursive gen 10 9 890 0.011
asdl_generated gen 8 11 397 0.020
classes gen 1 2 29 0.035
parse gen 28 25 788 0.036
scoped_resource gen 43 45 1,036 0.042
containers gen 6 3 114 0.051
files gen 6 8 75 0.083
tuple_return_value gen 17 14 189 0.091
gc_stack_roots gen 2 1 10 0.165
length gen 41 42 214 0.193
cartesian gen 85 80 355 0.240
escape gen 101 98 368 0.274
cgi gen 266 266 528 0.505
varargs gen 13 15 23 0.565
control_flow gen 210 160 112 1.865
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.6 4.3 12.5 0.37
gc_stack_roots gen 3.4 3.5 8.5 0.40
cgi gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
cartesian gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
fib_recursive gen 3.7 3.9 8.4 0.44
length gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
tuple_return_value gen 3.7 3.7 8.3 0.44
files gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
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 0 0 9 0.000
gc_stack_roots gen 0 1 9 0.000
modules gen 0 0 7 0.000
control_flow gen 1 3 10 0.100
files gen 1 0 9 0.115
loops gen 1 1 7 0.132
fib_recursive gen 1 2 7 0.139
tuple_return_value gen 2 4 11 0.184
containers gen 6 7 30 0.194
parse gen 2 2 9 0.217
classes gen 2 1 9 0.229
escape gen 4 7 10 0.400
cgi gen 4 3 9 0.445
asdl_generated gen 3 0 6 0.496
scoped_resource gen 4 1 8 0.502
length gen 4 3 8 0.503
cartesian gen 7 6 11 0.638
varargs gen 27 24 30 0.900
pea_hello gen NA NA 7 NA

raw benchmark files