먼저 libmemcache와 같은 기존 솔루션이 필요에 맞는지 확인하십시오.
그렇지 않다면 ...
해시 맵이 귀하의 요구 사항에 대한 확실한 대답 인 것 같습니다. 키를 기반으로 o (1) 조회를 제공합니다. 대부분의 STL 라이브러리는 요즘 일종의 해시를 제공합니다. 따라서 플랫폼에서 제공하는 것을 사용하십시오.
해당 부분이 완료되면 솔루션을 테스트하여 기본 해싱 알고리즘이 요구 사항에 충분한 성능을 제공하는지 확인해야합니다.
그렇지 않은 경우 인터넷에서 찾은 좋은 빠른 해싱 알고리즘을 탐색해야합니다.
- 좋은 오래된 소수 곱하기 알고리즘
- http://www.azillionmonkeys.com/qed/hash.html
- http://burtleburtle.net/bob/
- http://code.google.com/p/google-sparsehash/
이것이 충분하지 않은 경우 테스트 한 STL 컨테이너와 위의 해싱 알고리즘 중 하나에서 본 문제를 해결하는 해싱 모듈을 직접 롤링 할 수 있습니다. 결과를 어딘가에 게시하십시오.
오, 그리고 당신이 여러 개의 맵을 가지고 있다는 점이 흥미 롭습니다. 아마도 키가 속한 맵을 구별하고 하나의 거대한 해시에 모든 키 값 쌍을 추가하는 데 사용되는 상위 비트를 사용하여 64 비트 숫자로 키를 사용하여 단순화 할 수 있습니다. 기본 소수 해싱 알고리즘에서 완벽하게 잘 작동하는 10 만 개 정도의 기호가있는 해시를 보았습니다.
수백 개의 맵에 비해 솔루션의 성능을 확인할 수 있습니다. 메모리 프로파일 링 관점에서 더 나을 수 있다고 생각합니다.이 연습을 수행 할 수 있다면 어딘가에 결과를 게시하십시오.
해싱 알고리즘 이상으로 메모리의 지속적인 추가 / 삭제 (피할 수 있습니까?)와 애플리케이션 성능에 더 중요한 CPU 캐시 사용 프로필이 될 수 있다고 생각합니다.
행운을 빕니다