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 10 0.000
modules gen 1 0 190 0.005
fib_iter gen 7 7 935 0.007
loops gen 2 3 298 0.008
fib_recursive gen 10 11 889 0.011
asdl_generated gen 7 11 380 0.020
classes gen 1 2 32 0.032
parse gen 28 23 770 0.037
scoped_resource gen 42 42 1,047 0.040
containers gen 8 5 122 0.065
files gen 6 7 77 0.081
tuple_return_value gen 19 19 194 0.099
length gen 38 40 229 0.165
cartesian gen 84 79 334 0.252
escape gen 116 97 356 0.327
cgi gen 263 268 528 0.498
varargs gen 19 13 20 0.952
control_flow gen 208 161 115 1.800
pea_hello gen NA NA 8 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.5 12.3 0.35
gc_stack_roots gen 3.4 3.4 8.4 0.41
parse gen 3.8 3.8 9.0 0.42
modules gen 3.7 3.8 8.7 0.42
cartesian gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
fib_recursive gen 3.7 3.7 8.5 0.43
files gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
scoped_resource gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
length gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
tuple_return_value gen 0 0 8 0.000
fib_iter gen 1 1 9 0.105
loops gen 1 0 9 0.134
control_flow gen 1 1 7 0.143
modules gen 1 2 6 0.150
containers gen 4 5 25 0.158
fib_recursive gen 1 0 6 0.164
files gen 1 1 6 0.173
gc_stack_roots gen 2 1 9 0.192
parse gen 2 4 9 0.224
asdl_generated gen 3 0 11 0.292
classes gen 2 1 7 0.293
cgi gen 3 1 8 0.375
varargs gen 20 27 34 0.589
scoped_resource gen 6 4 9 0.673
escape gen 5 6 7 0.717
cartesian gen 8 8 9 0.890
length gen 7 5 7 0.994
pea_hello gen NA NA 9 NA

raw benchmark files