Microsoft MVC 프리뷰 4의 출력 캐시 필터가 실제로 액션 호출을 저장하나요?

엄격한 스트레스 테스트를 포함한 프리뷰 3을 사용하여 최신의 멋진 라이브 사이트를 배포했습니다.

페이지 출력 캐싱은 우리의 구세주였으며 성능 계약 요건을 충족할 수 있게 해주었습니다.

제 질문은 OutputCacheFilter 액션과 페이지 출력 캐싱 사이에 차이가 있나요?

액션 출력 캐싱이 페이지 출력 캐싱보다 빠릅니까?

해결책

내부적으로 출력 캐시 필터라고도 하는 출력 캐시 어트리뷰트는 페이지 출력 캐싱(@출력 캐시 지시어라고도 함)과 동일한 내부 메커니즘을 사용합니다.

따라서 페이지 출력 캐싱보다 빠르지는 않습니다. 그러나 MVC에서는 액션이 실행된 후에 뷰(또는 페이지)를 렌더링하기 때문에 MVC에서 @OutputCache 지시문을 통해 페이지 출력 캐싱을 사용할 수 없습니다. 따라서 이점을 거의 얻을 수 없습니다.

출력 캐시 필터를 사용하면 결과가 출력 캐시에 있는 경우 올바른 작업을 수행하고 액션 코드를 실행하지 않습니다. 도움이 되었기를 바랍니다. :)

해설 (0)

캐시되도록 표시된 액션에서 Html.RenderAction(..)을 호출하는 경우 현재 버그가 있다는 점에 유의하세요. 특정 액션이 캐시되는 대신 전체 페이지가 캐시됩니다. 이미 코드플렉스에서 이 문제를 보고했으며 알려진 문제인 것 같습니다: [출력 캐시(..)]가 있는 액션에 [% HTML.RenderAction(...); %>]을 호출하면 전체 페이지가 캐시됩니다.]1

해설 (0)