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 30 0.000
modules gen 0 2 190 0.000
fib_iter gen 8 7 941 0.008
fib_recursive gen 11 11 898 0.012
loops gen 4 0 302 0.012
asdl_generated gen 7 11 391 0.018
parse gen 26 23 771 0.034
scoped_resource gen 44 46 1,035 0.043
files gen 4 4 84 0.044
containers gen 8 8 109 0.071
tuple_return_value gen 19 15 197 0.097
gc_stack_roots gen 2 2 12 0.147
length gen 44 37 202 0.220
cartesian gen 87 64 340 0.256
escape gen 101 91 357 0.283
cgi gen 257 268 519 0.495
varargs gen 27 16 16 1.701
control_flow gen 206 162 110 1.879
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.5 12.3 0.36
cartesian gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
escape gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
length gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
fib_iter gen 3.7 3.7 8.4 0.44
files gen 3.7 3.9 8.4 0.44
loops gen 3.8 3.7 8.7 0.44
fib_recursive gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.7 8.5 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
containers gen 28.5 28.5 49.2 0.58
varargs gen 5.5 5.5 8.5 0.65
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
control_flow gen 0 0 12 0.000
fib_recursive gen 0 0 4 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 8 12 0.000
loops gen 0 3 4 0.000
tuple_return_value gen 0 4 4 0.000
containers gen 8 8 32 0.240
scoped_resource gen 4 0 12 0.334
classes gen 3 0 8 0.372
modules gen 2 0 4 0.445
parse gen 4 4 8 0.541
varargs gen 38 49 63 0.608
asdl_generated gen 4 0 4 0.882
cartesian gen 4 20 4 0.990
escape gen 4 12 4 1.009
cgi gen 12 0 8 1.507
files gen 4 4 0 inf
fib_iter gen 0 0 0 NA
pea_hello gen NA NA 11 NA

raw benchmark files