답변을 검색했지만 100 % 내 질문에 답변 할 수있는 것을 찾지 못했습니다. : D
그래서 hashmap을 다른 3 개의 새로운 hasmaps에서 만들 필요가 있습니다. 3 가지 다른 방법으로 값을 교환해야합니다. (나중에 map2.putAll(map1)
을 사용하고 나중에 2 개의 값을 바꿉니다.) 나중에 순서가 지정된 우선 순위 큐에 hashmaps를 저장해야합니다. 나중에 그 중 하나를 폴링하고 프로세스를 반복합니다.Java GC 오버 헤드 한도를 초과했습니다. 많은 해시 맵과 우선 순위 큐. 내가 무엇을 할 수 있을지?
특수 조건이 만족스럽지 않기 때문에이 작업을 여러 번해야하기 때문에 문제가 발생합니다 ... 그리고 내가하는지도의 수를 줄일 수있는 방법이 없습니다 (음, 하지만 그것은 매우 비쌀 것입니다 : /).
사실 나는 모든지도를 어딘가에 저장했는지 (내가 읽은 것에서 GC 결함이라고 생각했는지) 아니면 다른 트릭을해야하는지는 모르겠다. 단지 코드를 얻고 싶다. (가능한 경우) '-XX : -UseGCOverheadLimit'과 같은 것들을 사용하지 않고 (일지라도 마크가없는 경우에도) 일종의 숙제이기 때문에 프롬프트에서 'java classname'으로 작동해야합니다.
유일한 제한은 정시입니다 (문제는 아니며 이미 100 % 확신 됨, 이미 테스트 됨). 간단한 입력 (이미 좋은 상태 임)으로 테스트되지만, 어려운 것조차 할 수있게했다.
조언 해 주셔서 감사합니다.
아,지도 종류는 <Integer,Integer>
이고 크기는 16
입니다. 불행히도, 숙제가 아직 끝나지 않았기 때문에 여기에 코드를 게시 할 수 없습니다 (심지어 제가 제출 한 경우에도).
어쨌든 메모리가 부족할 때 GC 오버 헤드 제한이 발생하지만 여전히 조금씩 교정하여 계속 진행할 수 있습니다. 힙 한도를 높이거나 메모리를 적게 사용하도록 응용 프로그램을 수정하십시오. –
나는 그것을 알아 냈다. 그러나 나는 그것을하기 위해 호를 정말로 모른다.지도를 깨끗하게 할 수 있냐? – user1834153
해시 맵 작업을 마쳤 으면 해시 맵을 'null'로 설정하십시오. – apnorton