데이터베이스에서 많은 입력 데이터를 읽고 조작 한 다음 다른 데이터베이스에 데이터를 다시 쓰는 Java 프로그램이 있습니다 (ODBC 드라이버를 사용하고 새 Windows 7 시스템에서 데이터베이스를 엑셀 및 액세스). 프로그램은 이클립스에서 실행하는 데 약 17 분이 걸리지 만 실행 가능한 .jar 파일을 만들면 실행하는 데 10 분 (총 27 개)이 소요됩니다.왜 내 .jar 파일이 eclipse의 프로그램보다 느리게 실행됩니까?
저조한 jar 파일 (SO와 Google 검색)에 대한 두 가지 이유는 압축되어 있고 명령 프롬프트 또는 오류 로그에 기록하는 데 시간이 오래 걸린다는 것입니다 이클립스에서 콘솔. 압축되지 않은 jar 파일을 만들려고 시도했지만 약 10 초 정도 빨라졌습니다 (실행 시간이 약 30 초마다 달라 지므로 완전히 무작위 였을 수 있습니다). 프로그램에 약 10 개의 System.out.println()
명령 만 있으므로 느려지지 않아야합니다.
어떤 아이디어로 실행 속도가 느리며 어떤 방식 으로든 다시 속도를 낼 수 있습니까? 내가 포함해야하는 다른 세부 사항이 있다면 알려주십시오. 감사!
System.out.println() 명령을 모두 제거해 보셨습니까? 콘솔에 인쇄하는 것은 많은 속도를냅니다. –
logger 또는 log4j 라이브러리를 사용하여 로그 메시지를 인쇄하고 타임 스탬프를 사용하여 병목 현상을 일으키는 코드 부분을 확인할 수 있습니다. 이것은 구체적인 해결책이 아니지만 문제의 범위를 좁히는 데 도움이됩니다. – user845279
@Lai Xin Chu와 동의하십시오. 그러나 모든 인쇄물을 제거하는 것이 어려울 경우 프로그램을 실행하고 STDOUT을 파일로 리디렉션하십시오. 나는 이클립스 콘솔이 쉘보다 느리게 동작 할 수 있다고 생각하지 않는다. – AlexR