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 1 199 0.000
fib_iter gen 6 8 912 0.006
fib_recursive gen 10 9 891 0.011
loops gen 4 2 299 0.012
asdl_generated gen 8 11 403 0.020
parse gen 27 24 763 0.035
scoped_resource gen 43 46 1,047 0.041
gc_stack_roots gen 1 2 15 0.057
containers gen 7 7 114 0.060
classes gen 2 2 30 0.068
tuple_return_value gen 16 18 190 0.087
files gen 6 6 74 0.087
length gen 43 38 205 0.209
cartesian gen 89 82 333 0.267
escape gen 103 99 359 0.287
cgi gen 265 266 531 0.499
varargs gen 16 21 27 0.599
control_flow gen 209 161 116 1.809
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
cartesian gen 3.5 3.5 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
cgi gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.7 8.4 0.44
loops gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.8 8.4 0.44
control_flow gen 3.8 3.8 8.7 0.44
fib_iter gen 3.8 3.7 8.5 0.45
length gen 3.8 3.9 8.5 0.45
modules gen 3.8 3.8 8.5 0.45
files gen 3.9 3.8 8.5 0.46
containers gen 28.9 28.8 49.1 0.59
varargs gen 5.6 5.2 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
loops gen 0 1 8 0.000
files gen 1 1 9 0.102
fib_recursive gen 1 2 9 0.109
classes gen 1 1 7 0.151
control_flow gen 1 3 6 0.167
containers gen 5 4 28 0.176
length gen 2 7 11 0.181
gc_stack_roots gen 1 0 4 0.216
parse gen 3 3 11 0.272
tuple_return_value gen 3 0 9 0.343
modules gen 2 1 5 0.347
asdl_generated gen 3 0 8 0.371
fib_iter gen 2 0 5 0.379
escape gen 4 5 9 0.444
cartesian gen 3 4 6 0.500
cgi gen 6 3 8 0.750
scoped_resource gen 5 0 6 0.846
varargs gen 23 19 26 0.894
pea_hello gen NA NA 8 NA

raw benchmark files