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 0 23 0.000
fib_iter gen 4 8 932 0.004
modules gen 2 2 187 0.009
fib_recursive gen 11 11 915 0.012
loops gen 4 3 298 0.012
asdl_generated gen 11 11 391 0.028
parse gen 31 27 771 0.040
scoped_resource gen 44 46 1,048 0.042
files gen 4 7 74 0.049
tuple_return_value gen 15 14 188 0.082
gc_stack_roots gen 2 0 16 0.115
containers gen 16 0 116 0.135
length gen 44 45 210 0.210
cartesian gen 78 68 335 0.233
escape gen 105 104 349 0.302
cgi gen 264 263 515 0.513
varargs gen 20 12 20 0.990
control_flow gen 206 152 118 1.739
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.3 0.36
parse gen 3.8 3.8 9.1 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
cgi gen 3.5 3.7 8.3 0.43
asdl_generated gen 3.7 3.5 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.9 8.4 0.44
files gen 3.7 3.8 8.4 0.44
cartesian gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.8 8.5 0.45
escape gen 3.8 3.7 8.5 0.45
length gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.5 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
containers gen 28.5 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
asdl_generated gen 0 0 4 0.000
containers gen 0 14 32 0.000
control_flow gen 0 8 4 0.000
escape gen 0 0 20 0.000
fib_recursive gen 0 0 8 0.000
gc_stack_roots gen 0 2 4 0.000
length gen 0 0 8 0.000
loops gen 0 0 4 0.000
modules gen 0 0 12 0.000
parse gen 0 0 12 0.000
classes gen 3 3 15 0.215
cgi gen 4 4 16 0.251
tuple_return_value gen 4 5 12 0.320
files gen 4 0 8 0.438
varargs gen 47 53 60 0.792
fib_iter gen 4 0 4 0.958
scoped_resource gen 4 0 4 1.003
cartesian gen 12 16 4 3.091
pea_hello gen NA NA 7 NA

raw benchmark files