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 1 2 192 0.005
fib_iter gen 7 6 903 0.007
loops gen 3 1 307 0.009
fib_recursive gen 10 10 926 0.011
asdl_generated gen 10 8 381 0.026
parse gen 27 26 761 0.036
scoped_resource gen 43 41 1,034 0.042
containers gen 8 6 120 0.065
files gen 6 4 78 0.080
tuple_return_value gen 17 18 190 0.091
classes gen 3 3 26 0.124
gc_stack_roots gen 2 1 13 0.132
length gen 41 37 207 0.199
cartesian gen 83 82 329 0.252
escape gen 101 102 361 0.279
cgi gen 269 280 525 0.512
varargs gen 18 25 25 0.734
control_flow gen 205 162 114 1.803
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.5 4.3 12.3 0.36
parse gen 3.7 3.8 9.1 0.40
gc_stack_roots gen 3.4 3.4 8.4 0.41
scoped_resource gen 3.5 3.7 8.5 0.42
escape gen 3.5 3.7 8.4 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.9 8.5 0.43
modules gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.8 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
loops gen 3.7 3.7 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
fib_iter gen 3.8 3.5 8.5 0.45
length gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.9 8.4 0.45
files gen 3.8 3.7 8.4 0.45
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.5 5.6 8.5 0.65
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 13 0.000
gc_stack_roots gen 0 1 7 0.000
asdl_generated gen 1 3 9 0.108
fib_recursive gen 1 1 9 0.109
loops gen 1 2 8 0.118
modules gen 1 0 7 0.128
fib_iter gen 1 2 7 0.137
cgi gen 1 0 7 0.143
files gen 1 4 7 0.149
containers gen 5 5 28 0.174
parse gen 3 1 13 0.233
tuple_return_value gen 2 1 8 0.255
control_flow gen 3 1 8 0.376
length gen 3 9 8 0.378
scoped_resource gen 4 5 10 0.403
escape gen 5 3 10 0.500
varargs gen 21 14 29 0.738
cartesian gen 9 7 9 1.003
pea_hello gen NA NA 7 NA

raw benchmark files