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 1 13 0.000
modules gen 1 2 196 0.004
fib_iter gen 8 6 944 0.008
loops gen 3 1 304 0.009
fib_recursive gen 11 10 908 0.012
asdl_generated gen 8 11 391 0.020
parse gen 30 23 796 0.037
scoped_resource gen 40 41 1,027 0.039
classes gen 2 0 30 0.069
containers gen 10 5 117 0.083
files gen 7 5 75 0.090
tuple_return_value gen 19 15 199 0.094
length gen 38 43 212 0.180
cartesian gen 82 73 344 0.237
escape gen 105 100 361 0.292
cgi gen 267 265 528 0.505
varargs gen 18 16 23 0.793
control_flow gen 209 161 114 1.834
pea_hello gen NA NA 13 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.5 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
cgi gen 3.7 3.5 8.5 0.43
escape gen 3.7 3.5 8.5 0.43
fib_recursive gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.9 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
asdl_generated gen 3.8 3.7 8.4 0.45
files gen 3.8 3.8 8.4 0.45
length gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.7 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.5 5.6 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
fib_iter gen 0 2 10 0.000
fib_recursive gen 0 1 10 0.000
containers gen 2 6 27 0.080
files gen 1 3 9 0.107
tuple_return_value gen 1 3 9 0.115
escape gen 1 3 8 0.125
classes gen 1 3 8 0.129
modules gen 1 0 6 0.146
loops gen 1 2 5 0.185
parse gen 2 4 10 0.197
gc_stack_roots gen 2 1 6 0.278
control_flow gen 2 1 7 0.286
cgi gen 3 4 7 0.428
length gen 6 2 9 0.670
varargs gen 21 24 31 0.687
asdl_generated gen 3 0 4 0.727
scoped_resource gen 8 5 10 0.799
cartesian gen 10 14 6 1.658
pea_hello gen NA NA 5 NA

raw benchmark files