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 2 11 0.000
modules gen 1 0 192 0.005
fib_iter gen 6 6 904 0.007
loops gen 2 3 306 0.008
fib_recursive gen 11 9 894 0.012
asdl_generated gen 9 9 403 0.022
parse gen 28 26 780 0.036
scoped_resource gen 45 45 1,069 0.043
containers gen 7 6 112 0.064
classes gen 2 2 27 0.077
tuple_return_value gen 17 18 199 0.087
files gen 7 4 78 0.093
length gen 40 40 214 0.188
cartesian gen 85 81 359 0.236
escape gen 99 92 363 0.274
cgi gen 269 265 546 0.493
varargs gen 11 20 22 0.511
control_flow gen 205 162 113 1.815
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.5 4.3 12.3 0.36
parse gen 3.7 3.9 9.1 0.40
gc_stack_roots gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
cgi gen 3.7 3.7 8.3 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.5 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.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_recursive gen 0 2 4 0.000
files gen 0 4 6 0.000
classes gen 1 1 12 0.086
fib_iter gen 1 1 8 0.135
containers gen 5 4 31 0.164
cgi gen 1 5 6 0.167
loops gen 1 0 7 0.176
gc_stack_roots gen 2 0 9 0.191
modules gen 1 2 3 0.300
parse gen 3 2 9 0.330
tuple_return_value gen 2 0 6 0.339
asdl_generated gen 2 2 5 0.391
scoped_resource gen 2 0 5 0.395
control_flow gen 4 2 10 0.400
length gen 5 5 6 0.836
varargs gen 28 19 31 0.922
cartesian gen 7 5 4 1.744
escape gen 8 11 4 1.984
pea_hello gen NA NA 7 NA

raw benchmark files