프로덕션 환경에서 MiniProfiler를 사용하는 경우 중요한 점입니다. 페이지에 대한 첫 번째 방문이 MiniProfiler가 활성화 된 사용자에 의한 것처럼, 이후의 모든 요청에는 MiniProfiler 결과가 DOM에 포함됩니다 (캐시 된 것처럼). 결과는 정확하지 않을뿐만 아니라 (첫 번째로드 만 고려함) 모든 방문자가 MiniProfiler 결과를 볼 수 있습니다.
http://mvcdonutcaching.codeplex.com/
이 당신이 OutputCache를를 사용하는 경우 캐시되지 않습니다 작업을 추가 할 수 있습니다 :
첫째, 도넛 구멍 캐싱을 사용하기 위해, 나는의 사용을 만들고있어.
위와 같이 주어진 경우 레이아웃 페이지에서 @using StackExchange.Profiling;
을 삭제할 수 있습니다. 그런 다음 대체 할 수
@MiniProfiler.RenderIncludes()
으로 : 나는 DoNotCache 컨트롤러, 그래서 내 모든 캐시 할 수없는 요소가 함께하지만이 필요하지 않으며 당신이이 작업을 배치 할 수 있습니다를 만든
@Html.Action("MiniProfiler", "DoNotCache", excludeFromParentCache: true)
모든 컨트롤러.
@using StackExchange.Profiling;
@{
Layout = null;
}
@MiniProfiler.RenderIncludes()
이 적절하고, 심지어 당신이 DonutOutputCache
주석을 사용하는 곳에서 생산에 캐시하지 않을 경우 MiniProfiler 결과가 표시되어 있는지 확인합니다 :
public ActionResult MiniProfiler()
{
return View();
}
그리고 다음 뷰 자체는 것처럼 보인다.
중요합니까? 페이지가 출력 캐시에서 나오면 액션과 컨트롤러는 호출되지 않으므로 프로파일 러는 아무 것도 표시하지 않습니다. – Aliostad
그건 서버 쪽에서 정말 좋은 지적이지만, MiniProfiler는 흥미로운 DOM 등의 로딩 시간에 대한 정보도 출력합니다. – larsw