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
modules gen 1 2 192 0.005
loops gen 2 3 301 0.006
fib_iter gen 8 8 896 0.008
fib_recursive gen 10 9 904 0.011
asdl_generated gen 11 9 388 0.029
parse gen 27 23 774 0.035
classes gen 1 2 27 0.039
scoped_resource gen 44 44 1,047 0.042
containers gen 7 7 121 0.062
files gen 5 5 75 0.072
gc_stack_roots gen 1 0 12 0.077
tuple_return_value gen 16 14 189 0.085
length gen 41 42 207 0.200
cartesian gen 86 81 337 0.257
escape gen 98 101 359 0.274
cgi gen 269 269 527 0.511
varargs gen 18 19 30 0.594
control_flow gen 209 162 115 1.824
pea_hello gen NA NA 13 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
gc_stack_roots gen 3.4 3.4 8.4 0.41
cgi gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
files gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.8 9.1 0.43
scoped_resource gen 3.7 3.5 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
cartesian gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.9 8.5 0.45
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.5 0.45
length gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.9 49.2 0.58
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
asdl_generated gen 0 2 10 0.000
fib_iter gen 0 0 4 0.000
fib_recursive gen 1 2 9 0.110
gc_stack_roots gen 1 2 7 0.132
modules gen 1 0 5 0.178
containers gen 4 4 23 0.185
classes gen 2 1 11 0.191
files gen 2 2 9 0.201
parse gen 3 4 12 0.251
tuple_return_value gen 3 4 12 0.252
loops gen 2 0 7 0.268
control_flow gen 2 4 7 0.287
length gen 3 4 9 0.336
cgi gen 3 1 7 0.429
scoped_resource gen 5 1 7 0.713
varargs gen 22 20 24 0.907
escape gen 8 3 8 0.992
cartesian gen 5 5 5 1.006
pea_hello gen NA NA 5 NA

raw benchmark files