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 2 190 0.000
fib_iter gen 8 8 904 0.009
asdl_generated gen 4 6 394 0.009
fib_recursive gen 11 7 922 0.012
loops gen 4 0 294 0.015
parse gen 30 28 784 0.039
scoped_resource gen 48 42 1,025 0.046
files gen 4 7 74 0.052
containers gen 8 10 123 0.068
tuple_return_value gen 20 19 195 0.100
classes gen 4 3 31 0.123
gc_stack_roots gen 2 2 10 0.181
length gen 45 41 207 0.218
cartesian gen 87 87 380 0.230
escape gen 97 93 355 0.273
cgi gen 269 276 528 0.509
varargs gen 24 27 33 0.727
control_flow gen 210 160 118 1.779
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
parse gen 3.7 3.7 9.0 0.41
asdl_generated gen 3.5 3.7 8.5 0.42
cgi gen 3.5 3.8 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.5 0.42
modules gen 3.5 3.8 8.3 0.43
cartesian gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
length gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.5 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.8 8.4 0.45
files 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.9 8.5 0.46
loops gen 3.9 3.8 8.3 0.48
containers gen 28.8 28.5 49.1 0.59
varargs gen 5.6 5.4 8.5 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
cgi gen 0 4 8 0.000
classes gen 0 0 8 0.000
control_flow gen 0 0 8 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 4 16 0.000
gc_stack_roots gen 0 0 10 0.000
length gen 0 4 12 0.000
loops gen 0 3 16 0.000
parse gen 0 0 4 0.000
scoped_resource gen 0 4 12 0.000
tuple_return_value gen 0 0 4 0.000
modules gen 2 0 8 0.253
files gen 4 0 12 0.330
containers gen 8 5 24 0.352
cartesian gen 4 0 8 0.495
asdl_generated gen 7 6 12 0.612
escape gen 8 12 12 0.676
varargs gen 43 39 49 0.889
pea_hello gen NA NA 11 NA

raw benchmark files