Before revision: 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.
After revision: 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 or bottleneck, we posit that the code change required to improve performance may not always be found at the same location.