우선 먼저 Java HashMap performance optimization/alternative 전에 물어 본 다음 질문을 읽었으며 비슷한 질문이 있습니다.기본 유형에 매핑하기위한 HashMap의 빠른 대안은 무엇입니까?
내가하고 싶은 일은 stanford 파서가 의존성을 부여하고 종속성을 점수와 함께 저장하도록 New York 타임 텍스트에서 많은 의존성을 취하는 것입니다. 즉, 종속성을 두 번 볼 수 있습니다. 해시 맵에서 점수를 1 씩 증가시킵니다.
작업은 초당 약 10 문장으로 시작하지만 빠르게 저울질됩니다. 30,000 문장 (각 문장에서 10 단어를 가정하고 저장하는 각 단어에 대해 3-4 가지 종속성을 가짐)은 내 해시 맵에서 약 300 000 개의 항목입니다.
어떻게하면 해시 맵의 성능을 향상시킬 수 있습니까? 어떤 종류의 해시 키를 사용할 수 있습니까?
덕분에 많은 Martinos
편집 1 :
확인 녀석 어쩌면 내가 아니라 바이트 배열은 내 프로젝트에 있지만, 위의 다른 사람의 비슷한 질문에 사용되지 않는, 내 질문이 잘못 확인을 표현한. 나는 그들이 왜 그렇게 물었는지 그걸 위해 그것을 사용하고 있는지 모르겠다.
는 둘째 :
문장으로이 : 내가 그것을 이해하는 일을 열심히 할 것입니다 생각하지만, 여기에 샘플이기 때문에 내가 코드를 게시하지 않습니다 (I : "나는 침대에 갈거야"내가 종속성이 오전, -1) (i, going, -2) (i, ~,) (am, going, -1) . . . (to, bed, -1) 모든 문장 (1 000 000 문장)의 이러한 종속성은 해시 맵에 저장됩니다. 만약 내가 의존성을 두 번 보면 나는 기존 의존성의 점수를 얻고 1을 더할 것입니다.
그리고 그것은 꽤 많이 있습니다. 모든 것이 잘되지만 해시 맵 (또는 검색)에서 문장을 추가하는 비율은 다음 줄로 축소됩니다. dependancyBank.put (newDependancy, dependancyBank.get (newDependancy) +1); 누구나 그 이유를 말해 줄 수 있습니까? 감사합니다. Martinos
더 많은 코드를 보여줄 수 있다면 정말 도움이 될 것입니다. 예를 들어 관련된 유형은 무엇입니까? 초당 10 문장은 매우 느리게 들립니다 ... –
끝에 추가 질문을 제거하는 것이 좋습니다, 그것은 관련 질문에 코멘트로 더 적합 할 것입니다. – GavinCattell
''byte [] '를 키로 사용할 수 없으므로, 당신이 그것을 사용할 수 있을지 궁금합니다. 'byte []'가 객체이기 때문에, HashMap에 프리미티브를 놓을 수 없다. (래퍼 만 추가 할 수있다.) –