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 7 7 898 0.007
modules gen 2 2 191 0.009
fib_recursive gen 10 9 901 0.011
loops gen 4 1 301 0.014
asdl_generated gen 8 9 384 0.020
parse gen 27 26 827 0.033
classes gen 1 1 30 0.034
scoped_resource gen 46 41 1,094 0.042
containers gen 6 6 111 0.052
gc_stack_roots gen 1 1 14 0.059
files gen 7 6 77 0.090
tuple_return_value gen 18 17 197 0.092
length gen 42 40 215 0.195
cartesian gen 83 77 338 0.246
escape gen 100 100 360 0.279
cgi gen 265 267 523 0.507
varargs gen 22 16 24 0.916
control_flow gen 209 161 115 1.827
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.4 0.41
scoped_resource gen 3.5 3.7 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
cartesian gen 3.5 3.5 8.4 0.42
fib_recursive gen 3.5 3.8 8.4 0.42
cgi gen 3.7 3.5 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
files gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
length gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.9 8.5 0.45
loops gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 49.2 0.59
varargs gen 5.5 5.6 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
loops gen 0 2 6 0.000
modules gen 0 0 5 0.000
fib_iter gen 1 1 6 0.157
control_flow gen 1 1 6 0.167
containers gen 6 5 31 0.187
fib_recursive gen 1 2 5 0.194
gc_stack_roots gen 1 1 4 0.206
tuple_return_value gen 1 2 4 0.252
classes gen 2 2 8 0.254
scoped_resource gen 2 5 7 0.292
asdl_generated gen 3 2 9 0.321
parse gen 3 1 9 0.333
length gen 3 5 7 0.437
files gen 3 1 6 0.493
varargs gen 17 23 29 0.586
cgi gen 5 1 8 0.625
escape gen 5 3 7 0.716
cartesian gen 8 9 8 1.004
pea_hello gen NA NA 8 NA

raw benchmark files