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 1 193 0.000
fib_iter gen 6 8 943 0.006
loops gen 2 2 300 0.006
fib_recursive gen 10 9 894 0.011
asdl_generated gen 9 10 405 0.022
parse gen 28 22 819 0.034
scoped_resource gen 45 40 1,024 0.044
containers gen 7 5 118 0.057
tuple_return_value gen 16 17 195 0.082
classes gen 2 3 25 0.082
files gen 6 7 77 0.084
gc_stack_roots gen 2 2 10 0.170
length gen 43 42 212 0.203
cartesian gen 83 80 333 0.251
escape gen 101 96 359 0.282
cgi gen 267 263 532 0.502
varargs gen 14 18 23 0.612
control_flow gen 206 160 117 1.761
pea_hello gen NA NA 9 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
cartesian gen 3.5 3.7 8.5 0.42
fib_recursive gen 3.5 3.8 8.5 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
control_flow gen 3.7 3.9 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
modules gen 3.8 3.8 8.7 0.44
loops gen 3.7 3.8 8.3 0.44
length gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.9 8.4 0.45
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.6 5.6 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
gc_stack_roots gen 0 0 9 0.000
classes gen 1 0 13 0.079
fib_recursive gen 1 2 8 0.122
files gen 1 1 7 0.131
scoped_resource gen 2 6 11 0.183
containers gen 5 5 25 0.193
modules gen 2 1 7 0.244
parse gen 2 5 8 0.252
asdl_generated gen 2 1 7 0.278
loops gen 2 1 6 0.301
fib_iter gen 2 0 6 0.315
control_flow gen 2 2 6 0.333
cgi gen 3 6 7 0.430
tuple_return_value gen 3 1 7 0.432
length gen 2 4 4 0.501
escape gen 4 8 6 0.669
varargs gen 25 21 29 0.867
cartesian gen 8 6 5 1.603
pea_hello gen NA NA 8 NA

raw benchmark files