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 0 190 0.000
fib_iter gen 8 8 935 0.008
fib_recursive gen 11 7 891 0.012
loops gen 4 3 292 0.013
asdl_generated gen 11 7 387 0.028
parse gen 30 27 767 0.039
scoped_resource gen 44 38 1,038 0.042
tuple_return_value gen 15 18 186 0.082
files gen 7 7 75 0.097
classes gen 3 0 31 0.106
containers gen 16 0 116 0.137
gc_stack_roots gen 2 0 10 0.176
length gen 37 35 202 0.182
cartesian gen 87 73 335 0.260
escape gen 101 95 352 0.286
cgi gen 255 264 524 0.487
varargs gen 19 20 24 0.809
control_flow gen 210 158 116 1.818
pea_hello gen NA NA 0 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.3 4.3 12.2 0.35
modules gen 3.4 3.9 8.7 0.39
gc_stack_roots gen 3.5 3.5 8.5 0.42
cgi gen 3.5 3.7 8.4 0.42
escape gen 3.5 3.4 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
cartesian gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
control_flow gen 3.7 3.8 8.4 0.44
length gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.9 8.5 0.45
files gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
containers gen 28.6 28.5 49.1 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
asdl_generated gen 0 4 4 0.000
cgi gen 0 4 12 0.000
classes gen 0 3 8 0.000
containers gen 0 14 32 0.000
control_flow gen 0 4 8 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 4 4 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 2 10 0.000
loops gen 0 0 16 0.000
parse gen 0 0 4 0.000
modules gen 2 2 8 0.242
tuple_return_value gen 4 0 12 0.323
escape gen 4 8 12 0.339
cartesian gen 4 12 8 0.496
length gen 7 12 12 0.620
varargs gen 46 45 56 0.832
scoped_resource gen 4 8 4 0.999
pea_hello gen NA NA 18 NA

raw benchmark files