저는 데이터베이스에서 XML "구성 요소"를 지속적으로 검색 한 다음 XSLT를 사용하여 XHTML로 변환하는 웹 응용 프로그램을 작성하고 있습니다. 이러한 변형 중 일부는 자주 발생합니다 (예 : '사이드 바 탐색'구성 요소가 동일한 XML에 대해 나가서 사이드 바를 특징으로하는 모든 페이지에서 동일한 XSL 변환을 수행함). 따라서 속도를 높이기 위해 일부 캐싱을 구현하기 시작했습니다.변환 된 XML의 메모리 내 캐싱의 단점?
현재 솔루션에서 각 구성 요소가 변환을 시도하기 전에 구성 요소는 정적 CacheManager
개체로 검사하여 변환 된 XML의 캐시 된 버전이 있는지 확인합니다. 그렇다면 구성 요소가이를 출력합니다. 그렇지 않은 경우 구성 요소는 변환을 수행 한 후 변환 된 XML을 CacheManager
객체와 함께 저장합니다.
CacheManager
개체는 캐시 된 변환 된 XML의 메모리 내장 저장소를 유지합니다 (정확하게는 Dictionary
). 내 로컬 개발 환경에서이 작업은 아름답게 작동하지만이 방법은 확장 성이 뛰어난 솔루션이 아닐 수도 있습니다.
이러한 데이터를 메모리에 저장하는 잠재적 인 위험은 무엇입니까? 이와 같이 메모리 내 데이터 구조에 저장할 수있는 데이터의 양을 제한해야합니까? 이 캐싱 유형에 대해 다른 데이터 저장소를 사용해야합니까?
도움 주셔서 감사합니다! 나는 실제로 문자열 표현을 사전에 저장하고있다. (아마도 그렇게 말했음에 틀림 없다.) 좋은 생각 이었다는 확신을 듣는 것이 좋다. :) – attack