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 2 15 0.000
modules gen 0 0 189 0.000
fib_iter gen 8 6 896 0.008
loops gen 4 1 300 0.012
fib_recursive gen 11 11 895 0.012
asdl_generated gen 9 8 386 0.022
parse gen 28 23 773 0.036
scoped_resource gen 44 41 1,036 0.042
containers gen 7 8 121 0.057
files gen 5 7 77 0.070
tuple_return_value gen 18 15 200 0.092
classes gen 2 1 22 0.095
length gen 44 39 211 0.208
cartesian gen 83 77 342 0.243
escape gen 100 102 362 0.276
cgi gen 251 266 526 0.478
varargs gen 24 17 29 0.844
control_flow gen 208 161 113 1.845
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.5 4.5 12.5 0.36
fib_recursive gen 3.4 3.8 8.5 0.40
parse gen 3.7 3.9 9.1 0.40
gc_stack_roots gen 3.4 3.4 8.4 0.41
cartesian gen 3.5 3.5 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.5 0.43
tuple_return_value gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.5 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
files gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.9 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.4 5.5 8.5 0.63
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 9 0.000
fib_recursive gen 0 0 4 0.000
loops gen 0 2 7 0.000
classes gen 1 2 16 0.065
length gen 1 6 7 0.143
tuple_return_value gen 1 3 6 0.160
asdl_generated gen 2 3 10 0.215
modules gen 2 2 8 0.221
control_flow gen 2 2 9 0.222
containers gen 5 2 22 0.225
files gen 2 1 8 0.225
parse gen 2 4 8 0.252
gc_stack_roots gen 2 0 4 0.409
scoped_resource gen 4 4 9 0.443
varargs gen 15 22 25 0.612
cgi gen 4 2 5 0.800
cartesian gen 8 9 8 1.001
escape gen 7 2 4 1.743
pea_hello gen NA NA 8 NA

raw benchmark files