Profiling is a prominent technique for finding the location of performance "bottlenecks" in code. Profiling can be performed by adding code to a program which increments a counter for each line of code each time it is executed. Any lines of code which have a large execution count relative to other lines in the program can be considered a bottleneck. Though code profiling can determine the location of a performance issue or bottleneck, we posit that the code change required to improve performance may not always be found at the same location. Developers must frequently trace back through a program to understand what code is contributing to a bottleneck. We seek to highlight code which is likely causing or has the most effect on the overall execution cost of a program . In this document we compare different methods for localising potential performance improvements  .
Performance becomes an issue particularly when execution cost hinders the functionality of a program. Typically a profiler can be used to find program code execution which represents a large portion of the overall execution cost of a program. Pinpointing where a performance issue exists provides a starting point for tracing cause back through a program. While profiling shows where a performance issue manifests, we use mutation analysis to show where a performance improvement is likely to exist. We find that mutation analysis can indicate locations within a program which are highly impactful to the overall execution cost of a program yet are executed relatively infrequently. By better locating potential performance improvements in programs we hope to make performance improvement more amenable to automation .
R
Profiling is a prominent technique for finding the location of performance "bottlenecks" in code. Profiling can be performed by adding code to a program which increments a counter for each line of code each time it is executed. Any lines of code which have a large execution count relative to other lines in the program can be considered a bottleneck. Though code profiling can determine the location of
Performance becomes an issue particularly when execution cost hinders the functionality of a program. Typically a profiler can be used to find program code execution which represents a large portion of the overall execution cost of a program. Pinpointing where a performance issue exists provides a starting point for tracing cause back through a program. While profiling shows where
R
or bottleneck, we posit that the code change required to improve performance may not always be found at the same location. Developers must frequently trace back through a program to understand what code is contributing to a bottleneck. We seek to highlight code which is likely causing or has the most effect on the
manifests, we use mutation analysis to show where a performance improvement is likely to exist. We find that mutation analysis can indicate locations within a program which are highly impactful to the
R
. In this document we compare different methods for localising
yet are executed relatively infrequently. By better locating
A
in programs we hope to make performance improvement more amenable to automation