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
classes gen 0 3 24 0.000
fib_iter gen 8 8 928 0.008
modules gen 2 0 194 0.009
fib_recursive gen 11 7 879 0.013
loops gen 4 3 293 0.013
asdl_generated gen 11 11 385 0.028
parse gen 27 27 758 0.035
scoped_resource gen 47 46 1,045 0.045
tuple_return_value gen 19 18 198 0.097
containers gen 12 5 121 0.098
files gen 8 8 77 0.102
length gen 44 42 214 0.207
varargs gen 8 16 36 0.225
cartesian gen 95 86 344 0.277
escape gen 100 95 347 0.289
gc_stack_roots gen 2 0 4 0.484
cgi gen 268 269 530 0.506
control_flow gen 207 158 116 1.774
pea_hello gen NA NA 9 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.5 0.40
cgi gen 3.5 3.5 8.5 0.42
escape gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
control_flow gen 3.7 3.9 8.5 0.43
modules gen 3.7 3.5 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.9 8.4 0.44
files gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.9 3.8 8.5 0.46
length gen 3.8 3.7 8.1 0.47
fib_iter gen 3.9 3.8 8.3 0.48
containers gen 28.6 28.6 49.1 0.58
varargs gen 5.5 5.6 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 0 8 0.000
cartesian gen 0 0 8 0.000
cgi gen 0 0 4 0.000
control_flow gen 0 4 8 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 4 12 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 16 0.000
length gen 0 4 4 0.000
loops gen 0 0 12 0.000
modules gen 0 2 4 0.000
scoped_resource gen 0 0 8 0.000
tuple_return_value gen 0 0 4 0.000
containers gen 4 10 24 0.163
parse gen 4 0 20 0.192
classes gen 3 0 16 0.208
escape gen 4 8 16 0.252
varargs gen 57 49 44 1.290
pea_hello gen NA NA 9 NA

raw benchmark files