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 17 0.000
fib_iter gen 4 6 878 0.004
fib_recursive gen 8 8 893 0.008
modules gen 2 2 193 0.010
loops gen 4 3 303 0.013
asdl_generated gen 7 11 386 0.019
containers gen 4 10 120 0.033
scoped_resource gen 40 46 1,032 0.039
parse gen 33 20 771 0.043
files gen 4 8 75 0.050
tuple_return_value gen 19 19 188 0.103
classes gen 3 3 24 0.137
length gen 41 41 218 0.188
cartesian gen 84 74 331 0.253
escape gen 106 99 355 0.297
cgi gen 261 258 522 0.500
varargs gen 31 29 19 1.606
control_flow gen 206 163 118 1.746
pea_hello gen NA NA 7 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.6 12.2 0.37
gc_stack_roots gen 3.4 3.4 8.5 0.40
cartesian gen 3.5 3.5 8.5 0.42
escape gen 3.5 3.5 8.5 0.42
fib_recursive gen 3.5 3.5 8.5 0.42
cgi gen 3.7 3.7 8.5 0.43
control_flow gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.9 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
files gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
containers gen 28.5 28.5 49.2 0.58
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
classes gen 0 0 16 0.000
control_flow gen 0 0 4 0.000
escape gen 0 8 12 0.000
loops gen 0 0 4 0.000
modules gen 0 0 4 0.000
parse gen 0 8 4 0.000
tuple_return_value gen 0 0 12 0.000
files gen 4 0 12 0.314
fib_iter gen 4 3 12 0.319
containers gen 12 5 28 0.424
asdl_generated gen 4 0 8 0.450
gc_stack_roots gen 2 0 4 0.512
varargs gen 35 37 62 0.565
scoped_resource gen 8 0 12 0.663
fib_recursive gen 4 4 4 0.942
cgi gen 8 8 8 0.986
cartesian gen 8 12 8 1.001
length gen 4 4 4 1.036
pea_hello gen NA NA 11 NA

raw benchmark files