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 0 3 296 0.000
fib_recursive gen 7 11 895 0.008
fib_iter gen 8 8 935 0.008
modules gen 2 0 183 0.010
asdl_generated gen 11 11 389 0.028
containers gen 4 4 124 0.031
parse gen 27 23 770 0.035
scoped_resource gen 47 38 1,028 0.046
tuple_return_value gen 15 18 188 0.082
files gen 7 7 78 0.093
classes gen 3 3 28 0.118
gc_stack_roots gen 2 2 12 0.147
length gen 45 34 206 0.220
escape gen 95 103 355 0.269
cartesian gen 91 78 333 0.272
cgi gen 268 268 523 0.512
varargs gen 21 21 28 0.732
control_flow gen 214 162 118 1.818
pea_hello gen NA NA 11 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.6 4.5 12.3 0.37
gc_stack_roots gen 3.4 3.5 8.5 0.40
cartesian gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.0 0.42
cgi gen 3.7 3.5 8.5 0.43
modules gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.7 8.3 0.44
length gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
asdl_generated gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.5 8.4 0.45
files gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.9 8.5 0.46
fib_iter gen 3.9 3.7 8.5 0.46
containers gen 28.6 28.4 48.9 0.58
varargs gen 5.5 5.5 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
asdl_generated gen 0 0 12 0.000
cgi gen 0 0 12 0.000
classes gen 0 0 12 0.000
control_flow gen 0 0 4 0.000
fib_iter gen 0 0 8 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 13 16 0.000
modules gen 0 2 12 0.000
scoped_resource gen 0 8 12 0.000
fib_recursive gen 4 0 16 0.224
tuple_return_value gen 4 0 12 0.320
parse gen 4 4 8 0.478
loops gen 4 0 8 0.486
containers gen 12 11 20 0.578
varargs gen 45 45 52 0.867
cartesian gen 4 8 4 1.005
escape gen 12 0 8 1.494
pea_hello gen NA NA 8 NA

raw benchmark files