public void Profile() { _profilingApi.SuspendProfiling(); var profiledObject = CreateProfiledObject(); var warmUpInputData = CreateInputData(); var jitWarmUp = Execute(profiledObject, warmUpInputData); var inputData = CreateInputData(); _profilingApi.ResumeProfiling(); var theRealProfiling = Execute(profiledObject, inputData); _profilingApi.StopProfiling(GetType()); MakeReleaseBuildNotOmitTheResults(jitWarmUp, theRealProfiling); }