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 1 187 0.005
fib_iter gen 6 8 898 0.007
loops gen 3 3 305 0.009
fib_recursive gen 9 10 890 0.010
asdl_generated gen 9 9 383 0.023
parse gen 26 22 778 0.033
scoped_resource gen 43 42 1,017 0.042
classes gen 2 3 26 0.058
containers gen 7 6 123 0.058
files gen 5 8 73 0.071
tuple_return_value gen 15 15 187 0.081
gc_stack_roots gen 1 1 8 0.108
length gen 42 38 210 0.202
cartesian gen 81 82 340 0.239
escape gen 100 99 373 0.267
cgi gen 268 266 534 0.502
varargs gen 16 13 21 0.759
control_flow gen 206 159 119 1.733
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
cgi gen 3.5 3.7 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.7 8.4 0.42
parse gen 3.9 3.8 9.1 0.43
escape gen 3.7 3.7 8.4 0.44
fib_iter gen 3.8 3.7 8.5 0.45
files gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 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
control_flow gen 3.9 3.7 8.5 0.46
length gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.6 5.6 8.3 0.68
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
gc_stack_roots gen 1 1 11 0.078
modules gen 1 1 10 0.086
classes gen 2 1 12 0.131
fib_iter gen 1 0 7 0.153
asdl_generated gen 2 2 11 0.177
fib_recursive gen 2 1 11 0.178
files gen 2 0 10 0.206
containers gen 4 4 19 0.216
loops gen 1 0 4 0.228
cgi gen 2 2 8 0.251
length gen 2 7 7 0.289
parse gen 4 5 11 0.364
tuple_return_value gen 4 3 11 0.367
control_flow gen 2 4 5 0.397
scoped_resource gen 4 4 9 0.444
varargs gen 23 26 31 0.739
escape gen 6 4 7 0.855
cartesian gen 10 4 4 2.510
pea_hello gen NA NA 8 NA

raw benchmark files