1. A computer implemented method for profiling the execution of an application, the computer implemented method comprising: sampling execution characteristics of the application at a plurality of sampling points to provide samples; deriving a calling context of the samples; and continuously executing the application between sampling points while gathering additional profiling data.