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
fib_iter gen 8 7 891 0.009
modules gen 2 0 190 0.010
loops gen 3 3 299 0.011
fib_recursive gen 10 10 896 0.011
asdl_generated gen 8 10 392 0.019
parse gen 27 25 761 0.036
classes gen 1 2 28 0.038
scoped_resource gen 45 40 1,044 0.043
containers gen 7 4 115 0.061
files gen 5 6 79 0.070
gc_stack_roots gen 1 2 11 0.083
tuple_return_value gen 16 16 192 0.084
length gen 41 39 223 0.182
cartesian gen 84 79 350 0.240
escape gen 102 100 360 0.282
cgi gen 253 265 532 0.475
varargs gen 17 19 26 0.669
control_flow gen 206 174 119 1.737
pea_hello gen NA NA 11 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.3 4.3 12.2 0.35
gc_stack_roots gen 3.5 3.4 8.5 0.42
scoped_resource gen 3.5 3.8 8.4 0.42
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
control_flow gen 3.8 3.8 8.5 0.45
length gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.9 49.1 0.59
varargs gen 5.6 5.4 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
fib_iter gen 0 1 9 0.000
modules gen 0 2 8 0.000
gc_stack_roots gen 1 0 9 0.101
containers gen 5 7 31 0.162
fib_recursive gen 1 1 6 0.164
loops gen 1 0 6 0.180
control_flow gen 1 2 5 0.199
scoped_resource gen 2 6 10 0.201
parse gen 3 2 14 0.210
classes gen 2 2 10 0.212
files gen 2 2 7 0.259
cgi gen 3 4 7 0.429
tuple_return_value gen 3 2 7 0.431
length gen 4 7 7 0.565
varargs gen 22 20 28 0.805
asdl_generated gen 3 1 4 0.805
cartesian gen 7 8 7 1.001
escape gen 7 4 6 1.161
pea_hello gen NA NA 8 NA

raw benchmark files