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
containers gen 0 4 126 0.000
gc_stack_roots gen 0 0 8 0.000
fib_iter gen 8 8 931 0.008
modules gen 2 0 194 0.009
fib_recursive gen 11 11 895 0.012
loops gen 4 3 297 0.013
asdl_generated gen 11 11 396 0.029
parse gen 30 23 777 0.039
files gen 4 4 76 0.049
scoped_resource gen 52 42 1,029 0.051
tuple_return_value gen 16 14 188 0.083
classes gen 3 4 24 0.137
length gen 38 46 213 0.177
cartesian gen 83 86 329 0.252
escape gen 97 98 365 0.266
cgi gen 265 248 529 0.501
varargs gen 23 8 20 1.152
control_flow gen 215 161 123 1.752
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.5 12.2 0.37
asdl_generated gen 3.5 3.5 8.5 0.42
modules gen 3.5 3.8 8.5 0.42
parse gen 3.8 3.9 9.1 0.42
fib_iter gen 3.5 3.8 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
cgi gen 3.7 3.7 8.5 0.43
fib_recursive gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.4 8.4 0.44
length gen 3.7 3.5 8.4 0.44
files gen 3.8 3.8 8.5 0.45
tuple_return_value gen 3.8 3.8 8.5 0.45
control_flow gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.5 8.4 0.45
containers gen 28.6 28.5 49.1 0.58
varargs gen 5.4 5.6 8.5 0.63
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 0 4 0.000
classes gen 0 0 16 0.000
fib_iter gen 0 0 12 0.000
fib_recursive gen 0 0 8 0.000
loops gen 0 0 8 0.000
modules gen 0 2 4 0.000
parse gen 0 4 16 0.000
scoped_resource gen 0 4 12 0.000
gc_stack_roots gen 2 2 12 0.145
tuple_return_value gen 4 5 12 0.317
files gen 4 4 11 0.330
varargs gen 43 57 61 0.704
containers gen 16 11 20 0.822
length gen 8 0 8 0.936
cgi gen 4 4 4 1.009
cartesian gen 8 0 8 1.032
escape gen 8 4 0 inf
control_flow gen 0 0 0 NA
pea_hello gen NA NA 7 NA

raw benchmark files