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 1 1 188 0.005
fib_iter gen 8 7 902 0.008
loops gen 3 2 300 0.009
fib_recursive gen 10 11 899 0.011
asdl_generated gen 9 9 395 0.022
parse gen 24 23 772 0.031
containers gen 5 6 116 0.042
scoped_resource gen 45 41 1,025 0.044
files gen 4 5 75 0.057
classes gen 2 1 29 0.072
tuple_return_value gen 19 16 194 0.097
gc_stack_roots gen 2 0 12 0.137
length gen 41 41 213 0.192
cartesian gen 82 83 337 0.242
escape gen 100 96 361 0.276
cgi gen 268 268 526 0.510
varargs gen 18 17 26 0.704
control_flow gen 207 167 117 1.777
pea_hello gen NA NA 14 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.3 0.35
parse gen 3.7 3.8 9.1 0.40
escape gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
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.8 8.4 0.44
length gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
control_flow 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.9 8.5 0.45
loops gen 3.9 3.8 8.5 0.46
fib_recursive gen 3.9 3.9 8.4 0.47
files gen 3.9 3.7 8.4 0.47
containers gen 28.6 28.9 49.1 0.58
varargs gen 5.4 5.5 8.4 0.64
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 7 0.000
gc_stack_roots gen 0 2 8 0.000
modules gen 1 1 10 0.087
classes gen 1 2 10 0.104
loops gen 1 1 6 0.151
fib_recursive gen 1 0 5 0.196
containers gen 7 5 32 0.213
asdl_generated gen 2 2 8 0.244
tuple_return_value gen 2 2 8 0.248
scoped_resource gen 3 5 11 0.272
cgi gen 2 2 7 0.286
control_flow gen 2 1 6 0.333
files gen 3 2 9 0.355
length gen 4 4 6 0.663
parse gen 6 4 9 0.676
varargs gen 21 23 29 0.736
escape gen 8 7 8 1.000
cartesian gen 10 3 8 1.245
pea_hello gen NA NA 4 NA

raw benchmark files