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
classes gen 0 3 25 0.000
modules gen 0 2 184 0.000
fib_recursive gen 7 7 895 0.008
fib_iter gen 8 8 899 0.008
loops gen 4 3 299 0.012
asdl_generated gen 11 11 386 0.028
parse gen 26 23 807 0.032
scoped_resource gen 44 38 1,021 0.043
files gen 7 7 79 0.094
tuple_return_value gen 19 11 190 0.101
containers gen 15 3 114 0.135
gc_stack_roots gen 2 2 12 0.152
length gen 44 41 209 0.210
escape gen 98 95 364 0.268
cartesian gen 88 83 329 0.269
cgi gen 268 254 531 0.505
varargs gen 20 4 32 0.635
control_flow gen 208 163 113 1.832
pea_hello gen NA NA 7 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.7 3.9 9.1 0.40
gc_stack_roots gen 3.5 3.7 8.5 0.42
asdl_generated gen 3.5 3.7 8.4 0.42
cartesian gen 3.5 3.5 8.4 0.42
escape gen 3.5 3.8 8.4 0.42
fib_recursive gen 3.7 3.7 8.5 0.43
cgi gen 3.7 3.5 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
modules gen 3.8 3.7 8.7 0.44
loops gen 3.8 3.8 8.5 0.45
files gen 3.8 3.9 8.4 0.45
length gen 3.8 3.8 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
control_flow gen 3.9 3.8 8.5 0.46
containers gen 28.5 28.5 49.2 0.58
varargs gen 5.6 5.5 8.4 0.67
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
asdl_generated gen 0 0 12 0.000
containers gen 0 10 28 0.000
control_flow gen 0 0 8 0.000
fib_iter gen 0 0 4 0.000
files gen 0 0 4 0.000
gc_stack_roots gen 0 0 8 0.000
length gen 0 4 8 0.000
loops gen 0 0 4 0.000
tuple_return_value gen 0 7 8 0.000
modules gen 2 0 12 0.155
classes gen 3 0 13 0.250
fib_recursive gen 4 4 8 0.446
cartesian gen 4 4 8 0.501
varargs gen 45 61 48 0.932
scoped_resource gen 4 8 4 0.992
escape gen 8 12 4 1.952
parse gen 4 4 0 inf
cgi gen 0 0 0 NA
pea_hello gen NA NA 11 NA

raw benchmark files