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
loops gen 0 3 316 0.000
fib_recursive gen 7 11 891 0.008
fib_iter gen 8 4 887 0.009
modules gen 2 2 194 0.009
asdl_generated gen 11 11 380 0.030
parse gen 27 28 777 0.034
scoped_resource gen 44 46 1,043 0.042
containers gen 6 11 132 0.049
files gen 8 8 77 0.097
tuple_return_value gen 19 15 190 0.102
classes gen 3 3 28 0.120
gc_stack_roots gen 2 0 13 0.143
length gen 45 47 213 0.211
cartesian gen 83 75 346 0.240
escape gen 102 99 359 0.283
cgi gen 242 259 523 0.463
varargs gen 15 16 24 0.636
control_flow gen 206 161 113 1.832
pea_hello gen NA NA 12 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.5 8.5 0.42
escape gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.7 8.5 0.43
parse gen 3.9 3.7 9.1 0.43
control_flow gen 3.7 3.7 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.7 3.7 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.5 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
length gen 3.8 3.7 8.4 0.45
containers gen 28.4 28.7 49.1 0.58
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
asdl_generated gen 0 0 12 0.000
classes gen 0 0 12 0.000
control_flow gen 0 0 16 0.000
fib_iter gen 0 4 12 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 8 0.000
length gen 0 0 8 0.000
modules gen 0 0 4 0.000
tuple_return_value gen 0 4 12 0.000
parse gen 4 4 12 0.320
escape gen 4 4 12 0.339
fib_recursive gen 4 0 8 0.453
scoped_resource gen 4 0 8 0.495
containers gen 10 4 16 0.600
cgi gen 12 8 16 0.758
varargs gen 50 49 57 0.886
cartesian gen 8 12 0 inf
loops gen 4 0 0 inf
pea_hello gen NA NA 8 NA

raw benchmark files