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 0 2 192 0.000
fib_iter gen 8 4 946 0.008
fib_recursive gen 7 7 887 0.008
loops gen 4 3 294 0.012
asdl_generated gen 11 7 383 0.028
containers gen 4 9 105 0.037
parse gen 31 27 758 0.041
scoped_resource gen 43 42 1,026 0.042
tuple_return_value gen 15 14 193 0.080
classes gen 3 3 38 0.084
files gen 7 8 72 0.101
length gen 40 41 218 0.185
gc_stack_roots gen 2 2 8 0.220
cartesian gen 79 71 337 0.234
escape gen 101 99 360 0.280
cgi gen 254 245 522 0.486
varargs gen 12 15 17 0.741
control_flow gen 205 158 106 1.934
pea_hello gen NA NA 9 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
cartesian gen 3.5 3.7 8.5 0.42
scoped_resource gen 3.5 3.5 8.5 0.42
parse gen 3.8 3.8 9.1 0.42
asdl_generated gen 3.5 3.5 8.4 0.42
cgi gen 3.5 3.8 8.4 0.42
escape gen 3.5 3.7 8.4 0.42
files gen 3.5 3.8 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.8 8.5 0.43
fib_iter gen 3.8 3.8 8.5 0.45
fib_recursive gen 3.8 3.7 8.5 0.45
tuple_return_value gen 3.8 3.9 8.5 0.45
control_flow gen 3.8 3.8 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
length gen 3.9 3.8 8.5 0.46
containers gen 28.6 28.7 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
asdl_generated gen 0 4 12 0.000
cgi gen 0 8 8 0.000
fib_iter gen 0 4 4 0.000
files gen 0 0 12 0.000
gc_stack_roots gen 0 0 12 0.000
loops gen 0 0 12 0.000
parse gen 0 0 16 0.000
scoped_resource gen 4 4 16 0.246
control_flow gen 4 4 16 0.256
containers gen 12 5 36 0.318
modules gen 2 0 4 0.445
fib_recursive gen 4 4 8 0.446
tuple_return_value gen 4 5 8 0.487
varargs gen 53 50 62 0.856
length gen 4 4 4 0.997
cartesian gen 12 16 4 2.955
escape gen 4 4 0 inf
classes gen 0 0 0 NA
pea_hello gen NA NA 9 NA

raw benchmark files