Using dotTrace 3.1.357.3 for performance profiling using tracing, I frequently observe the cost of a function call consuming an unexpectedly large amount of time. Every time this happens, function execution was partially outside the profiling session. I can reproduce this in the first snapshot (after staring the application from the profiler) as well as when profiling is suspended and restarted. Is there a rationale for this behavior? Perhaps the thread gets suspended (due to the cost of the injected profiling code), and the timestamps no longer reflect reality. Would using sampling instead of tracing ameliorate this behavior? Is there a way to filter stale/inaccurate calls from the result set?