“…When performance issues such as in our example occur, there are numerous techniques that developers could use to determine whether there is a performance bug or the system was misconfigured. In addition to off-the-shelf profilers [15,53,74], developers could use more targeted profiling techniques [4,10,13,83,84], visualize performance behavior [2,6,12,21,62,70], search for inefficient coding patterns [7,46,54,56,68], use information-flow analyses [43,45,48,69,79,81,88], or model the performance of the systems in terms of its options and interactions [24,38,64,71,72,76]. Likewise, developers could use established program debugging techniques, such as delta debugging [85], program slicing [3,39,77], and statistical debugging [5,67] for some part of the debugging process.…”