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
loops gen 2 2 292 0.006
fib_iter gen 7 6 911 0.007
modules gen 2 2 178 0.010
fib_recursive gen 9 10 884 0.011
asdl_generated gen 10 9 377 0.026
parse gen 27 27 770 0.035
scoped_resource gen 45 44 1,047 0.043
classes gen 1 2 20 0.052
containers gen 7 7 106 0.064
files gen 6 7 73 0.080
tuple_return_value gen 19 17 183 0.105
gc_stack_roots gen 1 0 7 0.122
length gen 42 41 203 0.207
cartesian gen 87 76 329 0.264
escape gen 100 103 350 0.287
cgi gen 266 266 516 0.515
varargs gen 17 17 18 0.959
control_flow gen 211 166 110 1.919

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 10.8 0.40
cgi gen 3.4 3.5 6.9 0.49
cartesian gen 3.5 3.7 6.9 0.51
gc_stack_roots gen 3.5 3.7 6.9 0.51
parse gen 3.9 3.9 7.6 0.52
scoped_resource gen 3.7 3.7 7.1 0.52
asdl_generated gen 3.7 3.8 6.9 0.53
control_flow gen 3.7 3.8 6.9 0.53
escape gen 3.7 3.7 6.9 0.53
tuple_return_value gen 3.7 3.8 6.9 0.53
fib_iter gen 3.8 3.7 7.1 0.54
fib_recursive gen 3.8 3.8 7.1 0.54
files gen 3.8 3.7 7.1 0.54
loops gen 3.8 3.8 7.1 0.54
length gen 3.8 3.8 6.9 0.55
modules gen 3.8 3.7 6.9 0.55
containers gen 28.8 28.8 47.8 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
modules gen 0 0 6 0.000
tuple_return_value gen 1 2 11 0.092
asdl_generated gen 1 2 7 0.142
fib_iter gen 1 1 6 0.158
containers gen 5 5 26 0.189
parse gen 2 0 10 0.201
classes gen 2 1 10 0.207
gc_stack_roots gen 1 2 4 0.214
loops gen 2 1 6 0.306
fib_recursive gen 2 1 6 0.317
control_flow gen 2 1 6 0.333
cgi gen 2 3 5 0.401
scoped_resource gen 3 2 7 0.427
length gen 3 3 5 0.596
files gen 2 1 3 0.645
varargs gen 23 23 27 0.834
cartesian gen 5 10 5 0.999
escape gen 6 7 6 1.004

raw benchmark files