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 1 2 185 0.005
loops gen 2 3 306 0.006
fib_iter gen 7 6 894 0.007
fib_recursive gen 11 10 894 0.012
asdl_generated gen 8 10 391 0.020
parse gen 28 26 766 0.036
scoped_resource gen 44 43 1,041 0.042
containers gen 7 4 122 0.056
files gen 5 6 76 0.072
tuple_return_value gen 16 18 191 0.086
gc_stack_roots gen 1 0 10 0.087
classes gen 3 1 28 0.109
length gen 41 41 212 0.194
cartesian gen 88 84 351 0.250
escape gen 101 97 354 0.285
cgi gen 265 267 542 0.488
varargs gen 21 12 27 0.770
control_flow gen 210 161 117 1.796
pea_hello gen NA NA 15 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.3 0.36
parse gen 3.7 3.7 9.1 0.40
gc_stack_roots gen 3.5 3.5 8.5 0.42
asdl_generated gen 3.7 3.8 8.5 0.43
fib_iter gen 3.7 3.8 8.5 0.43
modules gen 3.7 3.8 8.5 0.43
cartesian gen 3.7 3.5 8.4 0.44
tuple_return_value gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.3 0.44
control_flow gen 3.8 3.9 8.5 0.45
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.7 8.5 0.45
escape gen 3.8 3.5 8.4 0.45
scoped_resource gen 3.8 3.7 8.4 0.45
fib_recursive gen 3.8 3.8 8.3 0.46
length gen 3.8 3.7 8.3 0.46
containers gen 28.8 28.8 49.1 0.59
varargs gen 5.6 5.5 8.5 0.66
pea_hello gen NA NA 8.3 NA

System Time (milliseconds)

Lower ratios are better.

example name gen C++ C++-Souffle Python C++ : Python
classes gen 0 2 10 0.000
fib_recursive gen 0 1 8 0.000
modules gen 1 0 12 0.072
gc_stack_roots gen 1 2 9 0.097
control_flow gen 1 2 7 0.143
fib_iter gen 1 1 6 0.158
loops gen 2 0 8 0.230
containers gen 5 6 20 0.244
files gen 2 2 6 0.302
tuple_return_value gen 3 0 9 0.322
parse gen 3 1 9 0.327
asdl_generated gen 3 1 8 0.362
cartesian gen 4 3 10 0.399
scoped_resource gen 3 3 5 0.600
length gen 5 4 8 0.628
escape gen 5 6 7 0.712
varargs gen 19 27 26 0.723
cgi gen 5 2 6 0.834
pea_hello gen NA NA 3 NA

raw benchmark files