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 8 7 938 0.008
modules gen 2 1 187 0.009
loops gen 3 2 298 0.009
fib_recursive gen 11 10 896 0.012
asdl_generated gen 9 8 386 0.023
classes gen 1 0 27 0.037
parse gen 28 26 766 0.037
scoped_resource gen 41 40 1,058 0.039
gc_stack_roots gen 1 1 12 0.071
files gen 6 5 76 0.082
containers gen 10 4 117 0.082
tuple_return_value gen 19 17 191 0.100
length gen 39 42 210 0.186
cartesian gen 85 80 335 0.254
escape gen 103 102 358 0.287
cgi gen 268 266 530 0.506
varargs gen 18 16 23 0.775
control_flow gen 207 167 112 1.849
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.2 0.37
asdl_generated gen 3.5 3.5 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
escape gen 3.7 3.5 8.5 0.43
gc_stack_roots gen 3.7 3.5 8.5 0.43
parse gen 3.9 3.9 9.1 0.43
cgi gen 3.7 3.7 8.4 0.44
length gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.7 8.7 0.44
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.7 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
scoped_resource gen 3.8 3.5 8.4 0.45
containers gen 28.9 28.8 49.2 0.59
varargs gen 5.6 5.6 8.4 0.67
pea_hello gen NA NA 8.0 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
fib_iter gen 0 1 3 0.000
fib_recursive gen 0 1 8 0.000
modules gen 0 1 8 0.000
tuple_return_value gen 0 1 8 0.000
containers gen 2 6 25 0.085
loops gen 1 1 10 0.091
gc_stack_roots gen 1 1 7 0.122
files gen 1 2 7 0.148
cgi gen 2 4 11 0.182
parse gen 2 1 11 0.185
classes gen 2 3 10 0.200
control_flow gen 2 1 10 0.200
asdl_generated gen 2 3 7 0.277
escape gen 3 3 8 0.375
length gen 5 4 9 0.555
varargs gen 22 23 30 0.726
cartesian gen 7 6 7 1.003
scoped_resource gen 6 6 3 2.004
pea_hello gen NA NA 7 NA

raw benchmark files