나는이 단어 파일에 단어 목록과 각 단어와 관련된 점수 목록이 들어 있습니다. 파일과 단어의 단어를 읽고 프로젝트에서 사용하고 싶습니다. 이 코드는 Java로 작성되었으며 파일 자체는 약 13MB입니다. 파일을 읽으려고 할 때 완료되는 데 약 15 분이 걸리지 만 언젠가는 더 오래 걸립니다. 이 문제를 어떻게 최적화하거나 처음부터 접근해야하는지에 대한 아이디어.주 메모리에 파일로드
작업은 파일에서 수행되고있다 - 1. 읽기 각 행 (평균 경우 10 토큰의 주위에) 하나의 공백을 사용하여 토큰에 2. 분할 3. 저장소 (평균 경우 50 개 문자 정도) 배열의 생성 된 토큰 (이 단계에서는 더 이상 없음)
편집 : 전에 내 코드를 게시하지 않아서 죄송합니다. http://pastie.org/3646388 EOF까지 루핑하는 것과는 대조적으로 출력을 얻었는지 10000 값으로 루프하는 곳이 있습니다.
코드를 공유 할 수 있습니까? 가능한 몇 가지 최적화가있을 수 있습니다. –
오래 걸리면 코모로 64에서 실행 중이거나 코드에 문제가있는 것입니다. 우리는 볼 수 없습니다. –
예, 앞서 언급했듯이 더 많은 코드가 도움이되지만 요즘 PC에서도 13MB 파일을 읽는 데 15 분이면 매우 느립니다. 파일 조작이 병목 현상이라고 생각하지 않습니다. 내 제안 : 1. 토큰을 분할하는 2 단계가 예상보다 많은 CPU를 사용한다면? 그렇다면 코드를 최적화하십시오. 2, 3 단계에서 많은 메모리 할당 작업이 필요하면 처음에는 Array (또는 ArrayList?)에 충분한 크기의 배열을 할당하고 JVM을 더 큰 시작 힙을 갖도록 조정합니다. –