2010-01-22 2 views
1

저는 테스트 목적으로 System.Web.Cache를 사용하고 있습니다. 꽤 멋진 캐시 저장소이고 내 웹 페이지의 속도를 상당히 높입니다. 하지만 몇 가지 사례가 있다는 것을 모릅니다. 몇 가지 더 많은 페이지를 실행하고, 그 페이지로 다시 돌아 가면 페이지 쿼리가 다시 나타납니다 (프로파일 러를 사용하여 검사했습니다).System.Web.Cache가 캐시를 한 번 잃어버린 이유는 무엇입니까?

메모리가 부족할 때 System.web.cache가 캐시에서 캐시를 잠시 꺼내는 Ram 또는 일부 유형의 플래시 메모리에 캐시합니까? 또는 어딘가 내 실수입니까? 프로덕션을 위해 System.web.cache를 사용하는 것이 좋습니까? 당신이 :)에

기원

답변

4

캐시 당신에 삽입 할 때 자동으로 시스템 메모리가 부족 실행할 때 항목을 제거하기 시작합니다, 그것은 우선 순위에 의해 어느 정도 제어 할 수 픽업 항목은 당신이 그들을 제공 캐시. CacheItemPriority 열거 형을 사용하여 Cache.Add() 메서드에서 우선 순위를 지정합니다. 그렇습니다. 캐시는 생산에 적합합니다. 특정 구현에만 적합 할 수도 있습니다.

+0

캐시에서 항목을 제거 할 때 호출되는 Cache.Add() 메서드에서 콜백 메서드를 제공 할 수도 있습니다. 그러면 항목이 제거 된 이유가 표시됩니다. – bleeeah

+0

이 매우 유용한 정보를 주셔서 감사합니다 :) – DucDigital

1

예, ASP.NET 캐시는 프로덕션 용도로는 완벽하게 적합합니다 (그러나 웹 팜이있는 경우 Velocity을 고려하십시오). 그리고 네, 메모리를 기반으로 항목을 자동으로 제거합니다. 항목 우선 순위는 & 다른 "메트릭"입니다.

+0

메신저와 속도 사이에 찾고있어, 내가 memcached 이후 속도를 확인하고 싶습니다. – DucDigital

3

다른 문제는 IIS 응용 프로그램 풀이 재활용 될 때입니다.

관련 문제