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 2 190 0.000
fib_iter gen 7 6 877 0.008
loops gen 3 1 311 0.009
fib_recursive gen 10 10 897 0.011
asdl_generated gen 9 9 391 0.022
classes gen 1 1 32 0.033
parse gen 28 24 776 0.036
scoped_resource gen 45 43 1,032 0.043
files gen 5 5 76 0.068
containers gen 8 6 117 0.071
tuple_return_value gen 18 18 192 0.091
gc_stack_roots gen 2 0 13 0.128
length gen 42 42 211 0.199
cartesian gen 87 77 334 0.262
escape gen 97 100 362 0.267
cgi gen 270 254 530 0.509
varargs gen 13 17 24 0.555
control_flow gen 205 162 118 1.744
pea_hello gen NA NA 15 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.2 0.37
parse gen 3.7 3.7 9.1 0.40
gc_stack_roots gen 3.5 3.4 8.5 0.42
cgi gen 3.5 3.4 8.4 0.42
cartesian gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.5 8.4 0.44
fib_recursive gen 3.8 3.9 8.5 0.45
files gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.5 8.5 0.45
scoped_resource gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
length gen 3.8 3.8 8.4 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.9 8.4 0.47
containers gen 28.8 28.8 49.2 0.58
varargs gen 5.6 5.6 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
gc_stack_roots gen 0 2 6 0.000
loops gen 1 2 9 0.109
containers gen 3 5 26 0.119
fib_iter gen 1 1 7 0.136
cgi gen 1 3 5 0.199
modules gen 2 0 8 0.220
parse gen 3 3 13 0.227
fib_recursive gen 1 1 4 0.245
tuple_return_value gen 2 0 8 0.257
files gen 2 3 8 0.262
length gen 2 3 7 0.286
classes gen 2 2 7 0.301
scoped_resource gen 3 3 9 0.332
control_flow gen 2 2 6 0.333
asdl_generated gen 2 2 5 0.389
cartesian gen 4 9 8 0.501
varargs gen 26 23 29 0.919
escape gen 9 3 5 1.795
pea_hello gen NA NA 3 NA

raw benchmark files