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 1 190 0.005
fib_iter gen 6 7 899 0.006
loops gen 2 1 302 0.007
fib_recursive gen 11 10 895 0.012
asdl_generated gen 9 9 381 0.023
parse gen 27 25 783 0.035
files gen 3 6 79 0.039
scoped_resource gen 45 43 1,040 0.043
containers gen 8 5 127 0.062
classes gen 2 2 30 0.070
gc_stack_roots gen 1 1 10 0.087
tuple_return_value gen 17 17 194 0.089
length gen 43 41 211 0.204
cartesian gen 84 82 337 0.249
escape gen 102 98 362 0.281
cgi gen 264 264 531 0.497
varargs gen 15 19 29 0.503
control_flow gen 210 161 116 1.815
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.3 0.36
asdl_generated gen 3.5 3.5 8.4 0.42
gc_stack_roots gen 3.5 3.5 8.4 0.42
modules gen 3.7 3.7 8.5 0.43
scoped_resource gen 3.7 3.5 8.5 0.43
cartesian gen 3.7 3.7 8.4 0.44
cgi gen 3.7 3.7 8.4 0.44
escape gen 3.7 3.8 8.4 0.44
length gen 3.7 3.7 8.4 0.44
parse gen 3.9 3.8 9.0 0.44
files gen 3.8 3.8 8.5 0.45
loops gen 3.8 3.8 8.5 0.45
fib_iter gen 3.8 3.8 8.4 0.45
fib_recursive gen 3.8 3.5 8.4 0.45
tuple_return_value gen 3.8 3.8 8.4 0.45
control_flow gen 3.9 3.8 8.4 0.47
containers gen 28.8 28.9 49.2 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
fib_recursive gen 0 1 7 0.000
gc_stack_roots gen 1 1 9 0.096
classes gen 1 1 9 0.117
modules gen 1 1 7 0.126
control_flow gen 1 3 6 0.166
containers gen 4 5 20 0.198
length gen 2 4 9 0.223
asdl_generated gen 2 2 8 0.244
loops gen 2 2 7 0.290
scoped_resource gen 3 2 10 0.300
fib_iter gen 2 1 6 0.318
parse gen 3 2 8 0.380
escape gen 4 6 8 0.503
tuple_return_value gen 2 2 4 0.507
files gen 4 2 6 0.688
cgi gen 6 5 8 0.750
cartesian gen 9 5 9 1.000
varargs gen 24 20 23 1.057
pea_hello gen NA NA 7 NA

raw benchmark files