Patent Number: 
Section: claims

1. A method for automatic identification of execution phases in load test data, comprising:receiving load test data indicating processor utilization for a plurality of threads over a period of time;dividing the period of time of the load test data into a plurality of intervals;for each pair of proximate intervals of the plurality of intervals, determining whether a statistical characterization of thread-wise processor utilization for a first interval of the pair of intervals is statistically indistinguishable from a statistical characterization of thread-wise processor utilization for a second interval of the pair of intervals;combining the pair of proximate intervals into a single interval when it is determined that the statistical characterization of processor utilization for the first interval is statistically indistinguishable from the statistical characterization of processor utilization for the second interval, for each of the plurality of threads; anddividing each of the pair of proximate intervals into subintervals when it is determined that the statistical characterization of processor utilization for the first interval is not statistically indistinguishable from the statistical characterization of processor utilization for the second interval, for at least one of the plurality of threads, wherein one or more execution phases are automatically identified as occurring between proximate intervals that are not substantially equivalent,wherein the steps of receiving the load test data, dividing the period of time, determining indistinguishablity, combining proximate intervals, and dividing proximate intervals are performed using one or more computer systems. 2. The method of claim 1, wherein the processor is a central processing unit (CPU). 3. The method of claim 2, wherein the thread-wise statistical characterization of processor utilization is a mean CPU utilization for each of the plurality of threads. 4. The method of claim 2, wherein the thread-wise statistical characterization of processor utilization is a standard deviation or variance of CPU utilization for each of the plurality of threads. 5. The method of claim 4, wherein determining whether the mean CPU utilization for the first interval is statistically indistinguishable from the mean CPU utilization for the second interval includes performing a modified Student's T test. 6. The method of claim 5, wherein determining whether the mean CPU utilization for the first interval is statistically indistinguishable from the mean CPU utilization for the second interval includes performing Welch's modification of Student's T test with unequal variances and unequal sample sizes. 7. The method of claim 1, wherein the period of time of the load test data is initially divided into a plurality of intervals of equal duration prior to performance of the steps of combining and dividing. 8. The method of claim 1, wherein the process of dividing intervals into subintervals and comparing subintervals is performed recursively up to a desired level of granularity. 9. The method of claim 1, wherein the determination as to whether the statistical characterization of thread-wise processor utilization of the pair of intervals is statistically indistinguishable is performed using a predetermined confidence interval. 10. The method of claim 1, wherein the determination as to whether the statistical characterization of thread-wise processor utilization of the pair of intervals is statistically indistinguishable is performed using multiple different confidence intervals, with each of the multiple different confidence intervals applied to calculating a statistical characterization of processor utilization for a different thread. 11. The method of claim 1, additionally including using the identified execution phases to correlate execution phases with application code segments associated with the load test data to identify application code segments that are responsible for phases of relatively high thread-wise processor utilization. 12. A method for automatic identification of bottlenecks n application code, comprising:executing the application code and recording load test data indicating CPU utilization for a plurality of threads over a period of time:dividing the period of time of the load test data into a plurality of intervals;for each pair of proximate intervals of the plurality of intervals, determining whether a statistical characterization of thread-wise CPU utilization for a first interval of the pair of intervals is statistically indistinguishable from a statistical characterization of thread-wise CPU utilization for a second interval of the pair of intervals;combining the pair of proximate intervals into a single interval when it is determined that the statistical characterization of CPU utilization for the first interval is statistically indistinguishable from the statistical characterization of CPU utilization for the second interval;dividing each of the pair of proximate intervals into subintervals when it is determined that the statistical characterization of CPU utilization for the first interval is not statistically indistinguishable from the statistical characterization of CPU utilization for the second interval, wherein one or more execution phases are automatically identified as occurring between proximate intervals that are not substantially equivalent; andusing the identified execution phases to correlate execution phases with segments of the application code associated with the load test data to identify segments of the application code that are responsible for phases of relatively high thread-wise CPU utilization,wherein the steps of executing the application code and recording load test data, dividing the period of time, determining indistinguishability, and correlating execution phases are performed using one or more computer systems. 13. The method of claim 12, wherein it is determined that the statistical characterization of CPU utilization for the first interval is statistically indistinguishable from the statistical characterization of CPU utilization for the second interval when the statistical characterization is statistically indistinguishable for every thread of the plurality of threads. 14. The method of claim 12, wherein it is determined that the statistical characterization of CPU utilization for the first interval is not statistically indistinguishable from the statistical characterization of CPU utilization for the second interval when the statistical characterization is not statistically indistinguishable for at least one thread of the plurality of threads. 15. The method of claim 12, wherein the thread-wise statistical characterization of CPU utilization is a mean CPU utilization for each of the plurality of threads. 16. The method of claim 12, wherein the thread-wise statistical characterization of CPU utilization is a standard deviation or variance of CPU utilization for each of the plurality of threads. 17. The method of claim 12, wherein determining whether the mean CPU utilization for the first interval is statistically indistinguishable from the mean CPU utilization for the second interval includes performing a modified Student's T test. 18. The method of claim 17, wherein determining whether the mean CPU utilization for the first interval is statistically indistinguishable from the mean CPU utilization for the second interval includes performing Welch's modification of Student's T test with unequal variances and unequal sample sizes. 19. A computer system comprising:a processor; anda non-transitory, tangible, program storage medium, readable by the computer system, embodying a program of instructions executable by the processor to perform method steps for automatic identification of execution phases in load test data, the method comprising:receiving load test data indicating CPU utilization for a plurality of threads over a period of time;dividing the period of time of the load test data into a plurality of intervals;for each pair of proximate e intervals of the plurality of intervals, determining whether a statistical characterization of thread-wise CPU utilization for a first interval of the pair of intervals is statistically indistinguishable from a statistical characterization of thread-wise CPU utilization for a second interval of the pair of intervals based on performing Welch's modification of Student's T test with unequal variances and unequal sample sizes;combining the pair of proximate intervals into a single interval when it is determined that the statistical characterization of CPU utilization for the first interval is statistically indistinguishable from the statistical characterization of CPU utilization for the second interval, for each of the plurality of threads; anddividing each of the pair of proximate intervals into subintervals when it is determined that the statistical characterization of CPU utilization for the first interval is not statistically indistinguishable from the statistical characterization of CPU utilization for the second interval, for at least one of the plurality of threads, wherein one or more execution phases are automatically identified as occurring between proximate intervals that are not substantially equivalent. 20. The computer system of claim 19, wherein the determination as to whether the statistical characterization of thread-wise CPU utilization of the pair of intervals is statistically indistinguishable is performed using multiple different confidence intervals, with each of the multiple different confidence intervals applied to calculating a statistical characterization of CPU utilization for a different thread. 21. The computer system of claim 19, wherein additionally including using the identified execution phases to correlate execution phases with application code segments associated with the load test data to identify application code segments that are responsible for phases of relatively high thread-wise CPU utilization.