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
modules gen 0 0 188 0.000
loops gen 2 2 312 0.006
fib_iter gen 8 7 888 0.008
fib_recursive gen 10 10 889 0.011
asdl_generated gen 11 9 415 0.026
parse gen 28 23 757 0.037
scoped_resource gen 46 42 1,061 0.043
containers gen 6 4 117 0.050
tuple_return_value gen 15 16 197 0.077
files gen 6 7 75 0.083
classes gen 3 2 30 0.087
gc_stack_roots gen 2 0 13 0.131
length gen 41 39 208 0.198
cartesian gen 80 82 337 0.238
escape gen 99 97 360 0.274
cgi gen 256 267 522 0.489
varargs gen 19 12 22 0.879
control_flow gen 206 161 117 1.756
pea_hello gen NA NA 12 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.3 0.35
gc_stack_roots gen 3.4 3.5 8.4 0.41
parse gen 3.8 3.8 9.0 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cartesian gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.5 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
length gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
control_flow gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.7 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
files gen 3.9 3.8 8.5 0.46
containers gen 28.8 28.6 49.1 0.59
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
asdl_generated gen 0 2 8 0.000
fib_iter gen 0 1 8 0.000
gc_stack_roots gen 0 2 6 0.000
classes gen 1 1 8 0.109
files gen 1 0 8 0.130
fib_recursive gen 1 1 6 0.164
parse gen 2 4 10 0.201
containers gen 6 6 25 0.235
scoped_resource gen 2 4 8 0.249
modules gen 2 2 7 0.251
loops gen 2 1 5 0.363
control_flow gen 3 1 7 0.427
cgi gen 4 2 9 0.443
length gen 4 6 9 0.446
varargs gen 20 27 31 0.657
tuple_return_value gen 4 2 5 0.808
escape gen 7 7 8 0.871
cartesian gen 12 5 6 2.013
pea_hello gen NA NA 5 NA

raw benchmark files