매 시간마다 한 번씩 완전히 업데이트되는 하나의 큰지도에 크게 의존하는 웹 서비스를 작성하고 있습니다. 나머지 시간에는 많은 스레드가 동시에 테이블을 읽습니다.동시 읽기 전용 HashMap
제 질문은 : 그러한 맵을 실현하는 가장 효율적인 구조는 무엇입니까?
지도가 다소 커질 수 있습니다 (100 - 500MB). 전체지도가 대체되는 시간당 한 번만 제외하고 읽기 액세스 권한 만 있습니다.
자바 HashMap을 사용하고 성능을 향상 시키려면 리플렉션을 사용하여 업데이트 간의 필드를 최종적으로 설정하려고 생각했지만 많은 동시 읽기에 대해 JVM 최적화 방법을 모르는 경우가 있습니다.
외부에서 'ReadWriteLock'을 통해 액세스를 관리 할 수 있습니다. 그 외에도 "정상적인"HashMap보다 더 효율적으로 만들 계획입니까? – Marco13
정상적인 HashMap으로 충분하지 않다는 증거가 있습니까? –
내가 가장 두려워하는 점은 각 스레드마다 자체 복사본이 있다는 것입니다. 또한 ConcurrentHashMap에는 동시 작성을위한 장점이 있다는 것을 읽었습니다. – xgb84j