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 0 13 0.000
modules gen 1 0 192 0.005
fib_iter gen 7 6 937 0.008
fib_recursive gen 9 10 898 0.010
loops gen 3 2 301 0.010
asdl_generated gen 9 10 387 0.023
parse gen 30 25 778 0.038
scoped_resource gen 44 42 1,033 0.042
classes gen 2 2 29 0.054
files gen 5 6 77 0.059
containers gen 8 9 116 0.067
tuple_return_value gen 16 15 191 0.084
length gen 40 39 212 0.191
cartesian gen 80 79 338 0.235
escape gen 101 95 353 0.286
cgi gen 266 265 531 0.501
varargs gen 16 16 21 0.758
control_flow gen 204 159 115 1.778
pea_hello gen NA NA 10 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.6 4.3 12.3 0.37
parse gen 3.7 3.8 9.1 0.40
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.7 8.5 0.42
cgi gen 3.7 3.7 8.5 0.43
files gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
length gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.9 8.5 0.45
fib_recursive gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
modules gen 3.8 3.9 8.5 0.45
escape gen 3.8 3.7 8.4 0.45
fib_iter gen 3.8 3.9 8.4 0.45
scoped_resource gen 3.8 3.8 8.4 0.45
containers gen 28.9 28.9 49.1 0.59
varargs gen 5.4 5.2 8.5 0.63
pea_hello gen NA NA 8.1 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 1 2 9 0.112
parse gen 1 2 8 0.128
containers gen 4 2 29 0.134
modules gen 1 2 5 0.175
classes gen 2 1 9 0.175
loops gen 1 1 5 0.201
asdl_generated gen 2 1 9 0.220
fib_recursive gen 2 1 7 0.279
gc_stack_roots gen 2 2 6 0.284
control_flow gen 2 2 6 0.332
tuple_return_value gen 3 3 8 0.377
files gen 3 2 6 0.457
cgi gen 4 4 8 0.499
escape gen 5 7 10 0.499
scoped_resource gen 3 3 5 0.598
varargs gen 23 24 31 0.738
length gen 4 7 5 0.789
cartesian gen 11 7 7 1.580
pea_hello gen NA NA 8 NA

raw benchmark files