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
classes gen 0 3 32 0.000
loops gen 0 0 307 0.000
fib_iter gen 8 8 942 0.008
modules gen 2 2 183 0.010
fib_recursive gen 11 11 886 0.012
asdl_generated gen 11 8 375 0.029
parse gen 30 27 762 0.040
scoped_resource gen 47 46 1,031 0.046
containers gen 8 7 108 0.074
tuple_return_value gen 19 18 207 0.093
files gen 7 4 75 0.097
gc_stack_roots gen 2 2 12 0.142
length gen 41 29 203 0.203
cartesian gen 83 87 337 0.247
escape gen 104 102 360 0.288
cgi gen 250 263 528 0.473
varargs gen 19 15 13 1.542
control_flow gen 207 160 110 1.878
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.3 4.5 12.5 0.35
gc_stack_roots gen 3.4 3.4 8.5 0.40
length gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
modules gen 3.7 3.8 8.7 0.42
cartesian gen 3.7 3.5 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
scoped_resource gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
escape gen 3.8 3.7 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.8 8.4 0.45
files gen 3.8 3.7 8.4 0.45
containers gen 28.4 28.5 49.1 0.58
varargs gen 5.5 5.5 8.4 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 4 12 0.000
control_flow gen 0 4 12 0.000
fib_iter gen 0 0 4 0.000
fib_recursive gen 0 0 8 0.000
files gen 0 4 8 0.000
gc_stack_roots gen 0 0 8 0.000
modules gen 0 0 12 0.000
parse gen 0 0 12 0.000
scoped_resource gen 0 0 12 0.000
tuple_return_value gen 0 0 8 0.000
containers gen 8 7 36 0.222
length gen 4 17 16 0.235
classes gen 3 0 8 0.406
cgi gen 4 4 8 0.496
varargs gen 46 50 67 0.694
loops gen 4 3 4 0.918
escape gen 4 0 4 0.997
cartesian gen 8 0 4 2.001
pea_hello gen NA NA 7 NA

raw benchmark files