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 1 2 192 0.005
fib_iter gen 6 6 978 0.006
fib_recursive gen 10 11 898 0.011
loops gen 4 2 306 0.012
asdl_generated gen 7 11 423 0.017
parse gen 27 26 766 0.035
scoped_resource gen 43 42 1,045 0.041
containers gen 5 7 113 0.044
files gen 5 7 77 0.071
classes gen 2 1 28 0.073
gc_stack_roots gen 1 0 12 0.073
tuple_return_value gen 16 17 192 0.083
length gen 40 45 208 0.193
cartesian gen 81 82 342 0.238
escape gen 99 95 354 0.280
cgi gen 266 267 530 0.502
varargs gen 14 12 21 0.661
control_flow gen 206 161 118 1.737
pea_hello gen NA NA 10 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.3 12.3 0.37
gc_stack_roots gen 3.4 3.4 8.5 0.40
fib_iter gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.8 9.0 0.42
files gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
length gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
escape gen 3.8 3.7 8.5 0.45
cgi gen 3.8 3.7 8.4 0.45
control_flow gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
loops gen 0 1 7 0.000
fib_recursive gen 1 0 11 0.089
classes gen 1 2 10 0.102
gc_stack_roots gen 1 2 7 0.126
modules gen 1 0 6 0.144
fib_iter gen 2 2 13 0.145
containers gen 7 4 29 0.240
parse gen 3 2 12 0.251
files gen 2 0 7 0.260
tuple_return_value gen 3 1 7 0.428
asdl_generated gen 4 0 7 0.576
control_flow gen 3 1 5 0.597
length gen 5 1 8 0.616
scoped_resource gen 5 5 7 0.716
cgi gen 4 2 5 0.798
varargs gen 26 28 31 0.831
escape gen 6 9 7 0.860
cartesian gen 10 4 6 1.667
pea_hello gen NA NA 8 NA

raw benchmark files