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_recursive gen 7 7 896 0.008
fib_iter gen 8 8 936 0.008
modules gen 2 0 183 0.010
loops gen 4 3 300 0.012
asdl_generated gen 11 7 374 0.029
containers gen 4 4 103 0.039
scoped_resource gen 41 42 1,032 0.039
parse gen 34 27 777 0.043
files gen 7 4 73 0.102
tuple_return_value gen 20 19 192 0.105
length gen 41 32 198 0.209
classes gen 3 3 16 0.211
cartesian gen 87 74 323 0.268
escape gen 101 101 352 0.287
gc_stack_roots gen 2 2 4 0.434
cgi gen 251 264 510 0.493
varargs gen 16 15 24 0.659
control_flow gen 209 162 114 1.827

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 10.8 0.41
gc_stack_roots gen 3.4 3.4 6.9 0.49
parse gen 3.8 3.9 7.6 0.50
cartesian gen 3.5 3.5 6.9 0.51
escape gen 3.5 3.7 6.9 0.51
asdl_generated gen 3.7 3.5 7.1 0.52
cgi gen 3.7 3.7 6.9 0.53
tuple_return_value gen 3.7 3.8 6.9 0.53
control_flow gen 3.8 3.8 7.1 0.54
length gen 3.8 3.7 7.1 0.54
loops gen 3.8 3.7 7.1 0.54
modules gen 3.8 3.8 6.9 0.55
scoped_resource gen 3.8 3.5 6.9 0.55
fib_recursive gen 3.8 3.5 6.8 0.56
fib_iter gen 3.9 3.8 6.9 0.57
files gen 3.9 3.7 6.9 0.57
containers gen 28.6 28.7 47.6 0.60
varargs gen 5.6 5.6 6.9 0.81

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 4 4 0.000
classes gen 0 0 16 0.000
fib_iter gen 0 0 8 0.000
files gen 0 4 4 0.000
gc_stack_roots gen 0 0 8 0.000
loops gen 0 0 4 0.000
modules gen 0 2 8 0.000
tuple_return_value gen 0 0 4 0.000
cartesian gen 4 12 12 0.328
containers gen 12 11 36 0.338
length gen 4 12 8 0.474
cgi gen 4 4 8 0.501
scoped_resource gen 8 4 12 0.677
fib_recursive gen 4 4 4 0.902
escape gen 4 8 4 1.009
parse gen 4 0 4 1.050
varargs gen 51 50 48 1.071
control_flow gen 0 0 0 NA

raw benchmark files