사용자 도구

사이트 도구


java:caffeine

문서의 이전 판입니다!


Caffeine - java cache

weakKeys() / weakValues()

  • weakKeys() / weakValues() 설정을 사용하면 캐시 Key 가 Weak Reference로 저장되고, 메모리 부족시 GC 대상으로 지정되게 하여 메모리 부족을 방어할 수 있다.
  • 이 경우 key 와 value 모두가 GC 대상이다.
  • 그러나 Key 를 비교할 때 equals() 메소드가 아니고 identity 비교(==)를 하게 된다.
  • 이는 Key 역할을 하는 객체가 값이 같아도 reference 가 다르면 다른것으로 인식하게 되어 cache hit 가 안됨을 뜻한다.
weakKeys()를 사용하려면 Key 역할을 하는 객체의 레퍼런스도 캐시하던지 정적 상수로 만들던지 하는 식으로 key 의 값이 동일하면 그 reference도 동일하게 처리해야만한다.

softValues()

  • 캐시의 value 가 GC 대상이 된다.
java/caffeine.1707350471.txt.gz · 마지막으로 수정됨: 2024/02/08 09:01 저자 kwon37xi