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
classes gen 0 3 27 0.000
gc_stack_roots gen 0 2 15 0.000
loops gen 0 3 299 0.000
fib_recursive gen 7 7 892 0.008
fib_iter gen 8 8 892 0.008
modules gen 2 0 188 0.010
asdl_generated gen 5 11 394 0.014
containers gen 4 7 109 0.035
parse gen 30 27 767 0.039
scoped_resource gen 44 45 1,030 0.043
tuple_return_value gen 19 18 194 0.099
files gen 7 8 72 0.102
length gen 45 41 216 0.208
cartesian gen 91 78 326 0.280
escape gen 101 100 357 0.283
varargs gen 12 16 25 0.491
cgi gen 265 249 533 0.496
control_flow gen 205 158 111 1.847
pea_hello gen NA NA 7 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.3 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.7 9.1 0.42
fib_recursive gen 3.5 3.8 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.7 8.5 0.43
length gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
control_flow gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
files gen 3.9 3.5 8.4 0.47
containers gen 28.7 28.6 49.1 0.58
varargs gen 5.4 5.5 8.4 0.64
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
cartesian gen 0 8 12 0.000
fib_iter gen 0 0 4 0.000
files gen 0 0 12 0.000
length gen 0 4 4 0.000
modules gen 0 2 8 0.000
parse gen 0 0 8 0.000
tuple_return_value gen 0 0 4 0.000
classes gen 3 0 11 0.279
containers gen 11 7 35 0.326
scoped_resource gen 4 0 12 0.334
gc_stack_roots gen 2 0 4 0.461
loops gen 4 0 8 0.469
escape gen 4 4 8 0.485
control_flow gen 4 4 8 0.497
asdl_generated gen 5 0 8 0.675
fib_recursive gen 4 4 4 0.899
varargs gen 53 49 54 0.982
cgi gen 4 4 4 1.000
pea_hello gen NA NA 11 NA

raw benchmark files