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 1 1 189 0.005
loops gen 2 2 303 0.006
fib_iter gen 7 6 901 0.008
fib_recursive gen 10 10 960 0.010
asdl_generated gen 10 9 388 0.025
parse gen 27 26 777 0.035
classes gen 1 2 26 0.040
scoped_resource gen 45 41 1,031 0.044
containers gen 6 5 122 0.048
files gen 5 6 74 0.070
tuple_return_value gen 19 16 190 0.102
gc_stack_roots gen 2 1 14 0.117
length gen 40 43 216 0.186
cartesian gen 88 80 340 0.260
escape gen 100 97 370 0.270
cgi gen 266 266 533 0.498
varargs gen 21 22 23 0.906
control_flow gen 207 159 116 1.793
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.6 12.5 0.36
parse gen 3.8 3.8 9.2 0.42
cgi gen 3.7 3.7 8.5 0.43
loops gen 3.7 3.8 8.5 0.43
asdl_generated gen 3.7 3.5 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
fib_iter gen 3.7 3.8 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
gc_stack_roots gen 3.7 3.5 8.3 0.44
cartesian gen 3.8 3.7 8.5 0.45
fib_recursive gen 3.8 3.8 8.5 0.45
scoped_resource gen 3.8 3.8 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
length gen 3.8 3.7 8.4 0.45
modules gen 3.9 3.8 8.7 0.45
containers gen 28.8 28.8 49.1 0.59
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
fib_iter gen 0 2 6 0.000
gc_stack_roots gen 0 1 4 0.000
tuple_return_value gen 0 2 11 0.000
modules gen 1 1 9 0.096
asdl_generated gen 1 2 7 0.138
loops gen 2 1 13 0.139
classes gen 2 1 12 0.172
files gen 2 2 9 0.230
fib_recursive gen 1 1 4 0.244
scoped_resource gen 2 4 8 0.252
containers gen 6 6 20 0.293
control_flow gen 3 2 6 0.496
parse gen 3 1 6 0.502
cartesian gen 4 6 7 0.573
varargs gen 18 17 29 0.616
escape gen 7 7 8 0.873
cgi gen 4 3 3 1.330
length gen 4 3 2 2.002
pea_hello gen NA NA 8 NA

raw benchmark files