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
modules gen 0 1 206 0.000
fib_iter gen 7 8 901 0.007
loops gen 3 1 301 0.009
fib_recursive gen 10 11 892 0.011
asdl_generated gen 10 9 415 0.024
parse gen 27 23 770 0.035
classes gen 1 3 30 0.036
scoped_resource gen 47 40 1,033 0.045
containers gen 6 6 124 0.049
files gen 5 5 78 0.067
tuple_return_value gen 14 15 192 0.075
gc_stack_roots gen 2 0 13 0.129
length gen 41 41 212 0.195
cartesian gen 83 83 354 0.234
escape gen 101 99 358 0.283
cgi gen 268 266 527 0.508
varargs gen 19 18 31 0.610
control_flow gen 204 164 117 1.735
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
files gen 3.5 3.8 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.5 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
tuple_return_value gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.8 8.4 0.44
parse gen 3.9 3.7 9.0 0.44
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 0.45
modules gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.6 8.4 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
gc_stack_roots gen 0 2 8 0.000
scoped_resource gen 1 5 9 0.111
fib_iter gen 1 0 8 0.119
fib_recursive gen 1 0 8 0.123
loops gen 1 2 7 0.132
asdl_generated gen 1 2 7 0.141
classes gen 2 0 11 0.196
cgi gen 2 3 10 0.200
files gen 2 2 8 0.262
parse gen 4 4 15 0.264
containers gen 6 5 22 0.279
modules gen 2 1 6 0.298
control_flow gen 3 0 7 0.430
tuple_return_value gen 5 3 11 0.438
length gen 4 5 6 0.657
varargs gen 21 22 25 0.836
escape gen 5 6 5 0.995
cartesian gen 9 4 9 0.996
pea_hello gen NA NA 9 NA

raw benchmark files