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
gc_stack_roots gen 0 2 4 0.000
loops gen 0 0 295 0.000
fib_iter gen 8 8 938 0.008
modules gen 2 2 184 0.010
fib_recursive gen 11 11 885 0.012
asdl_generated gen 5 17 384 0.014
parse gen 30 23 782 0.039
scoped_resource gen 48 38 1,055 0.046
containers gen 8 0 118 0.065
files gen 7 4 79 0.092
tuple_return_value gen 19 15 195 0.098
varargs gen 4 15 39 0.100
classes gen 3 3 17 0.184
length gen 42 41 209 0.199
cartesian gen 86 70 331 0.260
escape gen 98 96 360 0.273
cgi gen 261 256 521 0.501
control_flow gen 208 166 114 1.824
pea_hello gen NA NA 4 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.4 3.7 8.3 0.41
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.5 8.7 0.42
asdl_generated gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.7 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.7 8.5 0.43
length gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.9 9.0 0.44
control_flow gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
files gen 3.9 3.8 8.4 0.47
loops gen 3.9 3.8 8.4 0.47
containers gen 28.6 28.5 49.1 0.58
varargs gen 5.5 5.5 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 21 0.000
control_flow gen 0 0 8 0.000
fib_iter gen 0 0 8 0.000
fib_recursive gen 0 0 12 0.000
files gen 0 4 4 0.000
modules gen 0 0 12 0.000
parse gen 0 4 4 0.000
scoped_resource gen 0 8 4 0.000
tuple_return_value gen 0 4 4 0.000
gc_stack_roots gen 2 0 15 0.115
loops gen 4 3 12 0.317
containers gen 8 14 24 0.323
asdl_generated gen 5 4 12 0.456
length gen 4 4 8 0.470
cartesian gen 4 16 8 0.509
cgi gen 8 8 8 0.986
varargs gen 59 49 39 1.507
escape gen 8 8 4 1.963
pea_hello gen NA NA 14 NA

raw benchmark files