2014-10-17 10 views
0

캐시에서 저장하고 가져와야하는 몇 가지 큰 개체가 있습니다. 이 물체는 약 1 - 2mb 크기입니다.큰 개체 캐싱 - LocalCache 성능

localCache을 실행하면 검색에 몇 밀리 초가 걸리지 만 검색을 수행하지 않으면 약 3 초가 걸립니다.

저는 Azure In-role 캐시 (colocated)를 사용하고 있습니다.

localCache를 사용하지 않으면 왜 그렇게 느려지는지 알 수있는 사람이 있습니까?

+1

구현 주제와 관련하여 질문이 많으므로 – GlenH7

답변

1

LocalCache는 프로세스의 로컬 즉 응용 프로그램의 프로세스 메모리 내에 있습니다. LocalCache가 활성화되면 캐시에서 가져온 객체도 LocalCache에 저장됩니다. 해당 객체에 대한 모든 다음 요청은 해당 LocalCache에서 제공됩니다 (프로세스 캐시에서 가져올 필요 없음). 그러나 처음으로 객체를 검색하는 데는 시간이 걸립니다. MSDN 따르면

:

로컬 캐시가 활성화

는 캐시 클라이언트는 로컬 객체에 대한 참조를 저장한다. 이렇게하면 개체가 클라이언트 응용 프로그램 의 메모리에 활성 상태로 유지됩니다. 응용 프로그램이 개체를 요청하면 캐시 클라이언트는 먼저 개체가 로컬 캐시에 있는지 여부를 확인합니다. 그렇다면 객체에 대한 참조는 즉시 서버에 문의하지 않고 으로 반환됩니다. 존재하지 않으면 오브젝트는 입니다. 그런 다음 캐시 클라이언트는 개체를 deserialize하고이 새로 검색 한 개체에 대한 참조를 로컬 캐시에 저장합니다. 클라이언트 응용 프로그램은이 동일한 객체를 사용합니다. 로컬 캐시가 디스 에이블 될 때, 각 검색 요구가 외부 프로세스의 메모리마다 개체를 가져 오는 결과 아웃 PROC 캐시에 관한 반면

.

-Sameer

+0

답변을 주셔서 감사 합니다만, 분명히 3 초가 여전히 과도한가요? 나는 1 - 2MB가 매우 크다는 것을 알고 있지만, 캐시는 동배로되어 있습니다. 그래서 오랫동안 걸릴 것이 무엇인지 알 수 없습니다. – davenewza

+0

[NCache for Azure] (http://www.alachisoft.com/ncache/azure-index.html)와 같은 다른 솔루션을 사용하여 응용 프로그램의 성능을 벤치 마크 할 수 있습니다. Azure in-role 캐시의 성능 문제 일 수 있습니다. –