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 2 12 0.000
fib_iter gen 8 8 1,229 0.006
modules gen 2 2 178 0.010
fib_recursive gen 11 7 965 0.011
loops gen 4 3 295 0.013
parse gen 25 27 775 0.033
containers gen 4 0 107 0.036
scoped_resource gen 39 46 1,077 0.037
asdl_generated gen 24 11 369 0.066
tuple_return_value gen 17 15 188 0.091
files gen 7 7 69 0.108
classes gen 3 0 23 0.139
length gen 40 40 206 0.195
cartesian gen 80 83 327 0.245
escape gen 99 106 354 0.278
varargs gen 12 12 24 0.489
cgi gen 254 253 503 0.505
control_flow gen 210 161 104 2.006

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.7 0.40
parse gen 3.8 3.8 7.6 0.50
asdl_generated gen 3.5 3.7 6.9 0.51
gc_stack_roots gen 3.5 3.4 6.9 0.51
scoped_resource gen 3.5 3.5 6.9 0.51
fib_recursive gen 3.7 3.8 7.1 0.52
cartesian gen 3.7 3.7 6.9 0.53
cgi gen 3.7 3.5 6.9 0.53
escape gen 3.7 3.7 6.9 0.53
fib_iter gen 3.7 3.5 6.9 0.53
loops gen 3.7 3.8 6.9 0.53
modules gen 3.7 3.7 6.9 0.53
control_flow gen 3.8 3.9 7.1 0.54
files gen 3.8 3.8 6.9 0.55
length gen 3.8 3.8 6.9 0.55
tuple_return_value gen 3.8 3.7 6.9 0.55
containers gen 28.4 28.5 47.6 0.60
varargs gen 5.5 5.4 6.9 0.79

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cgi gen 0 0 8 0.000
classes gen 0 4 8 0.000
control_flow gen 0 0 8 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 4 8 0.000
files gen 0 0 8 0.000
loops gen 0 0 8 0.000
modules gen 0 0 4 0.000
asdl_generated gen 4 0 12 0.342
containers gen 12 14 28 0.415
parse gen 4 0 8 0.529
tuple_return_value gen 3 4 4 0.856
scoped_resource gen 8 0 8 0.987
length gen 4 4 4 0.994
varargs gen 55 54 48 1.141
cartesian gen 12 4 8 1.508
escape gen 8 0 4 1.981
gc_stack_roots gen 2 0 0 inf

raw benchmark files