1. A computer-implemented method of analyzing workloads processed when executing an application in order to identify a bottleneck where time to execute a workload between two checkpoints increases at a greater rate than the load increases, and where the bottleneck is identified with a high degree of specificity even though a relatively small number of checkpoints is spread through the application, the computer-implemented method being performed by one or more processors executing computer executable instructions for the computer-implemented method, and the computer-implemented, method comprising: identifying a first set of checkpoints in the application; for each of said first set of checkpoints, establishing a checkpoint function call that causes a checkpoint identifier and a timestamp to be captured; executing said application in accordance with the workload; capturing checkpoint identifiers, timestamps, and workload identifiers for the each of said first set of checkpoints; identifying a bottleneck between said first set of checkpoints; placing a second set of checkpoints between the checkpoints of said first set of checkpoints; for said second set of checkpoints, establishing a checkpoint function call that causes a checkpoint identifier and a timestamp to be captured for the checkpoints of said second set of checkpoints; executing said application in accordance with the workload; capturing checkpoint identifiers, timestamps, and workload identifiers for each of the checkpoints of said second set of checkpoints; determining that the bottleneck is between the checkpoints of the second set of checkpoints; removing or turning off the checkpoints of the first set of checkpoints; continuing to place successive sets of checkpoints between an immediately previous set of checkpoints and establishing a checkpoint function call that causes a checkpoint identifier and a timestamp to be captured for the checkpoints of each said successive set of checkpoints, with a spacing between newly placed checkpoints being smaller than a spacing between the previous set of checkpoints, then removing or turning off the checkpoints of the previous set of checkpoints; and re-executing the application in accordance with the workload until the bottleneck is located with a desired degree of specificity.