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
gc_stack_roots gen 0 2 8 0.000
fib_iter gen 8 8 951 0.008
modules gen 2 2 191 0.009
fib_recursive gen 11 7 910 0.012
loops gen 4 3 298 0.012
asdl_generated gen 7 11 391 0.018
parse gen 31 23 776 0.040
scoped_resource gen 43 37 1,033 0.042
files gen 4 8 75 0.049
tuple_return_value gen 15 14 195 0.079
containers gen 12 0 117 0.099
classes gen 3 0 23 0.138
length gen 44 47 212 0.208
cartesian gen 87 78 338 0.258
escape gen 99 104 363 0.273
cgi gen 246 259 532 0.462
varargs gen 24 19 24 1.025
control_flow gen 209 161 118 1.774
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.5 4.5 12.5 0.36
fib_iter gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.7 0.42
cgi gen 3.7 3.8 8.5 0.43
control_flow gen 3.7 3.8 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cartesian gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.3 0.44
fib_recursive gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.7 8.4 0.45
files gen 3.9 3.8 8.5 0.46
containers gen 28.7 28.5 49.1 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
classes gen 0 3 15 0.000
control_flow gen 0 0 4 0.000
fib_iter gen 0 0 8 0.000
length gen 0 0 4 0.000
loops gen 0 0 8 0.000
modules gen 0 0 4 0.000
parse gen 0 4 8 0.000
gc_stack_roots gen 2 0 12 0.152
containers gen 4 14 24 0.159
asdl_generated gen 4 0 8 0.448
files gen 4 0 8 0.466
cartesian gen 4 8 8 0.492
varargs gen 41 46 56 0.732
tuple_return_value gen 4 5 4 0.964
scoped_resource gen 4 8 4 0.987
escape gen 8 0 4 1.967
cgi gen 8 8 4 1.981
fib_recursive gen 0 4 0 NA
pea_hello gen NA NA 7 NA

raw benchmark files