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 10 0.000
modules gen 1 1 189 0.005
fib_iter gen 7 7 923 0.007
loops gen 3 2 299 0.009
fib_recursive gen 9 11 904 0.010
asdl_generated gen 10 10 384 0.025
parse gen 27 24 770 0.035
scoped_resource gen 45 43 1,033 0.044
containers gen 6 6 119 0.049
classes gen 2 1 31 0.066
tuple_return_value gen 14 16 192 0.073
files gen 7 6 77 0.086
length gen 37 45 216 0.173
cartesian gen 83 81 332 0.251
escape gen 102 97 365 0.280
cgi gen 267 265 524 0.509
varargs gen 13 10 20 0.660
control_flow gen 208 160 114 1.822
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.3 0.36
gc_stack_roots gen 3.4 3.4 8.5 0.40
parse gen 3.8 3.7 9.1 0.42
cartesian gen 3.5 3.7 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
length gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
control_flow gen 3.7 3.8 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_recursive gen 3.8 3.5 8.5 0.45
files gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.5 8.4 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
files gen 1 1 9 0.105
modules gen 1 1 8 0.108
loops gen 1 1 8 0.114
fib_iter gen 1 1 7 0.135
classes gen 1 2 7 0.147
fib_recursive gen 2 0 10 0.195
gc_stack_roots gen 2 0 8 0.205
asdl_generated gen 1 1 5 0.213
containers gen 6 5 24 0.245
control_flow gen 2 2 7 0.285
cgi gen 3 4 9 0.333
parse gen 3 3 8 0.377
escape gen 3 6 5 0.601
scoped_resource gen 2 2 3 0.673
varargs gen 26 29 33 0.800
tuple_return_value gen 5 2 6 0.838
length gen 7 4 8 0.861
cartesian gen 8 5 7 1.145
pea_hello gen NA NA 8 NA

raw benchmark files