2013-06-14 3 views
4

ehcache에서 infinispan으로 이전 중입니다. 으로 Ehcache에서 우리는 메모리 크기에 계산 ehcache의 calculateInMemorySize를 대체하는 Infinispan 캐시의 데이터 크기를 얻는 방법은 무엇입니까?

net.sf.ehcache.Cache.calculateInMemorySize() 

있습니다.

infinispan에서 메모리 크기를 계산하는 방법은 무엇입니까?

+0

불행히도 Infinisan에서는 그렇게 쉬운 일이 아닙니다. 메모리 크기를 효과적으로 계산하려면 캐시의 모든 객체를 바이트 배열 (2 진 구성으로 저장) 및 각 항목의 키 및 값 계산 크기 (바이트 단위)로 직렬화해야합니다. 예를 들어, ByteArrayOutputStream을 사용합니다. 여기에는 모든 캐시 엔트리를 가져와 그 위에 몇 가지 연산을 수행하는 DistributedExecution 태스크를 생성 할 수 있습니다 (여기서는 키와 값 크기를 계산합니다) – tsykora

답변

1

Tomas가 맞습니다. 현재 메모리의 데이터 크기를 계산할 방법이 없습니다. 그러나 우리는 사용자가 자신의 메모리 요구 사항을 계획하는 데 도움이되는 the memory overhead that Infinispan incurs에 대한 몇 가지 지침을 제공합니다. 메모리 내부의 데이터 크기를 계산하는 것은 쉬운 일이 아니며 많은 미묘한 세부 사항을 고려해야합니다 (JVM, arquitecture ... 등).

관련 문제