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 200 0.000
fib_iter gen 7 6 896 0.008
loops gen 3 2 296 0.010
fib_recursive gen 10 10 941 0.010
asdl_generated gen 11 9 394 0.029
parse gen 24 23 773 0.030
scoped_resource gen 44 43 1,041 0.043
classes gen 2 1 30 0.071
containers gen 8 7 111 0.072
files gen 6 7 77 0.073
tuple_return_value gen 14 16 192 0.075
gc_stack_roots gen 2 1 11 0.161
length gen 39 43 208 0.188
cartesian gen 81 77 336 0.242
escape gen 101 99 356 0.284
cgi gen 271 265 525 0.515
varargs gen 15 25 23 0.668
control_flow gen 205 159 115 1.785
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.3 4.5 12.5 0.35
asdl_generated gen 3.5 3.8 8.5 0.42
cgi gen 3.5 3.7 8.5 0.42
gc_stack_roots gen 3.5 3.4 8.5 0.42
cartesian gen 3.5 3.7 8.4 0.42
parse gen 3.8 3.8 8.8 0.43
control_flow gen 3.7 3.8 8.5 0.43
escape gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.5 8.5 0.43
fib_recursive gen 3.7 3.8 8.4 0.44
modules gen 3.8 3.8 8.7 0.44
files gen 3.8 3.7 8.5 0.45
fib_iter gen 3.8 3.7 8.4 0.45
loops gen 3.8 3.8 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
length gen 3.9 3.8 8.4 0.47
containers gen 28.6 28.8 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 2 7 0.000
gc_stack_roots gen 0 1 8 0.000
loops gen 1 1 9 0.111
containers gen 4 3 36 0.112
classes gen 1 2 9 0.118
fib_iter gen 1 2 8 0.122
fib_recursive gen 1 1 5 0.196
cgi gen 1 5 5 0.200
control_flow gen 2 3 9 0.222
modules gen 2 0 8 0.223
files gen 2 1 6 0.313
scoped_resource gen 3 3 7 0.431
length gen 5 3 9 0.556
escape gen 5 5 8 0.625
tuple_return_value gen 5 3 7 0.689
varargs gen 24 14 30 0.820
parse gen 7 4 8 0.859
cartesian gen 11 10 7 1.555
pea_hello gen NA NA 8 NA

raw benchmark files