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 13 0.000
modules gen 0 2 189 0.000
loops gen 2 2 302 0.007
fib_iter gen 8 6 907 0.008
fib_recursive gen 9 10 888 0.010
asdl_generated gen 6 9 393 0.016
parse gen 27 23 775 0.035
containers gen 5 5 116 0.044
scoped_resource gen 48 42 1,033 0.047
classes gen 2 2 30 0.070
files gen 7 7 74 0.089
tuple_return_value gen 18 15 196 0.092
length gen 41 43 212 0.195
cartesian gen 87 75 337 0.259
escape gen 101 98 366 0.277
cgi gen 263 270 526 0.501
varargs gen 15 24 21 0.703
control_flow gen 211 164 117 1.799
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.5 4.2 12.3 0.36
gc_stack_roots gen 3.4 3.4 8.5 0.40
parse gen 3.7 3.9 9.1 0.40
cartesian gen 3.5 3.5 8.4 0.42
cgi gen 3.5 3.7 8.4 0.42
length gen 3.5 3.8 8.4 0.42
scoped_resource gen 3.5 3.8 8.4 0.42
escape gen 3.7 3.7 8.5 0.43
asdl_generated gen 3.7 3.7 8.4 0.44
control_flow gen 3.8 3.8 8.5 0.45
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
modules gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.9 8.4 0.45
containers gen 28.6 28.9 49.2 0.58
varargs gen 5.6 5.6 8.4 0.67
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 7 0.000
files gen 1 1 10 0.094
classes gen 1 1 9 0.117
scoped_resource gen 1 4 7 0.141
control_flow gen 1 0 7 0.143
modules gen 2 0 8 0.226
containers gen 7 5 31 0.229
fib_recursive gen 2 1 8 0.247
loops gen 2 1 8 0.266
gc_stack_roots gen 2 0 6 0.300
parse gen 3 4 10 0.305
length gen 3 2 8 0.376
tuple_return_value gen 2 4 5 0.402
varargs gen 25 16 32 0.769
cartesian gen 5 11 6 0.833
escape gen 5 6 6 0.833
cgi gen 7 1 6 1.164
asdl_generated gen 5 2 4 1.270
pea_hello gen NA NA 7 NA

raw benchmark files