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 8 899 0.008
modules gen 2 0 198 0.010
fib_recursive gen 11 7 887 0.012
loops gen 4 3 298 0.013
asdl_generated gen 7 11 387 0.019
scoped_resource gen 40 46 1,025 0.039
parse gen 31 23 767 0.040
tuple_return_value gen 19 18 199 0.097
files gen 7 7 75 0.098
containers gen 12 7 113 0.103
gc_stack_roots gen 2 2 16 0.111
classes gen 3 3 27 0.120
length gen 37 42 207 0.179
cartesian gen 83 74 348 0.239
escape gen 97 100 354 0.274
cgi gen 265 260 517 0.511
varargs gen 25 27 15 1.598
control_flow gen 207 163 121 1.709
pea_hello gen NA NA 19 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.4 0.36
gc_stack_roots gen 3.4 3.5 8.4 0.41
cgi gen 3.5 3.7 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
loops gen 3.5 3.8 8.4 0.42
fib_recursive gen 3.7 3.8 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
escape gen 3.7 3.8 8.4 0.44
files gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
modules 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.7 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
length gen 3.9 3.8 8.4 0.47
containers gen 28.5 28.5 48.9 0.58
varargs gen 5.6 5.5 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
classes gen 0 0 11 0.000
fib_iter gen 0 0 4 0.000
fib_recursive gen 0 4 4 0.000
files gen 0 0 8 0.000
gc_stack_roots gen 0 0 4 0.000
loops gen 0 0 16 0.000
modules gen 0 2 4 0.000
parse gen 0 4 8 0.000
containers gen 4 7 32 0.120
asdl_generated gen 4 0 8 0.448
cgi gen 4 8 8 0.500
scoped_resource gen 8 0 16 0.500
varargs gen 41 38 65 0.627
cartesian gen 8 12 12 0.660
length gen 7 4 8 0.932
escape gen 8 4 8 0.965
control_flow gen 0 0 0 NA
pea_hello gen NA NA 0 NA
tuple_return_value gen 0 0 0 NA

raw benchmark files