HTML 페이지를 다운로드하기위한 Java 프로그램을 작성했습니다. 그러나 CPU 사용량은 100 %에 가깝지만 네트워크 사용량은 3 % 미만입니다. CPU가 병목 현상이 된 것 같습니다. CPU 사용량을 줄이려면 어떻게해야합니까?Java에서 CPU 사용량을 줄이는 것에 대한 제안 사항이 있습니까?
답변
프로파일 러를 사용하여 병목 현상을 확인하고 수정하십시오! (VisualVM)
while 루프가 연속적이면 프로그램을 반복 간격 사이에 sleep으로 지정하십시오. 혼자서 웹 페이지를 다운로드하면 리소스 사용률이 그만큼 높아져서는 안되며, 병목 현상을 확인하는 프로파일 러를 살펴 보는 것이 좋습니다. 아마 여기에 코드를 게시하면 우리가 좀 더 당신을 도울 것입니다.
CPU 사용량이 오랜 기간 동안 100 %에 가까워지면 대부분의 경우 코드에 오류가 생길 수 있습니다 (무한 루프 또는 무언가). 응용 프로그램의 프로필을 작성하여 현재 상황을 확인하십시오. 코드에서 여러 지점의 현재 시간을 인쇄하는 것으로 시작하십시오. 그래도 찾을 수 없다면 프로파일 러가 필요할 것입니다.
루프가 무한하다면 잡는 중 몇 개의 스택 추적으로 찾을 수 있습니다. 루프가 _not_ 무한하지만 길이가 길면 같은 방법이 작동합니다. –
문제를 확인하기 위해 할 수있는 한 가지 간단한 방법은 몇 가지 스택 추적을 잡는 것입니다. ctrl-/ctrl-break/jstack/jconsole/visualvm. 프로그램이 성능 문제가있는 곳에서 많은 시간을 낭비한다면 상당히 쉽게 문제를 볼 수 있습니다.
++가 나를 때렸다. 그것은 내가 가장 좋아하는 방법이다. –
은 아마 당신은
내가 이벤트 중심의 통지 코드를 변경하려고 할 것입니다 ... 너무 빨리 데이터를 폴링합니다.감사합니다.
읽었을 때 한 번에 char/byte를 읽으십니까? 그건 꽤 OS를로드합니다.
사용 BufferedReader의, 및/또는 ([] ... 숯불)를 사용하여 읽기 중 하나를 읽으려고 또는 내의 readLine() 당신이에 읽고있는 것을 따라.
언제든지 내장 된 Java XML DOM 항목을 사용하여 HTML을 구문 분석합니까? 과거의 경험을 통해 꽤 많은 CPU 사용량을 초래할 수 있습니다 (솔직히 말해서 가장 느린 구현입니다). 그렇다면 XML 구문 분석을 위해 타사 라이브러리 (예 : JDOM)를 고려할 수 있습니다.
- 1. GAE CPU 사용량을 줄이는 방법은 무엇입니까?
- 2. WPF 응용 프로그램의 CPU 사용량을 줄이는 방법은 무엇입니까?
- 3. 포럼과 통합하는 것에 대한 제안?
- 4. 프로그램의 CPU/RAM 사용량을 측정
- 5. 내 웹 서버의 서버 구성에 대한 제안 사항이 있습니까?
- 6. 플래시에서 CPU 사용량과 CPU 메모리 사용량을 얻으시겠습니까?
- 7. JBoss 100 % CPU 사용량을 디버깅
- 8. 좋은 로그인 관리자에 대한 제안 사항이 있으십니까?
- 9. iPhone 개발 리소스에 대한 제안 사항이 있으십니까?
- 10. 이 CSS 개선에 대한 제안 사항이 있으십니까?
- 11. asp.net에서 CPU 사용량을 얻는 방법
- 12. Qt에서 CPU 사용량을 얻는 방법
- 13. DLL은 100 % CPU 사용량을 사용합니다.
- 14. 디스플레이 목록에 CPU 사용량을 표시해야합니까?
- 15. Openfeint 2.4.10 CPU 사용량을 먹고
- 16. 대화 형 텍스트 명령 라이브러리에 대한 제안 사항이 있습니까?
- 17. 누구든지 WEbAii, Watin 및 Selenuim에 대한 제안 사항이 있습니까
- 18. Blackberry Development - 참조 및 도구에 대한 제안 사항이 있습니까?
- 19. "친구에게 보내기"를 구현하기위한 구성 요소에 대한 제안 사항이 있습니까?
- 20. 관련 키워드를 저장하기위한 db 스키마에 대한 제안 사항이 있습니까?
- 21. Android 최종 신청과 관련된 제안 사항이 있습니까?
- 22. SSIS 패키지 코드 비교 ... 제안 사항이 있습니까?
- 23. Mysql 버퍼링을 통해 CPU 사용량을 낮추십시오.
- 24. Visual Studio 2010 - 메모리 사용량을 줄이는 방법
- 25. 이 문제에 대한 DB datatable 디자인에 대한 제안 사항이 있으십니까?
- 26. 프로그래밍 방식으로 CPU 사용량을 어떻게 계산합니까?
- 27. 프로세스의 CPU 코어 사용량을 어떻게 측정합니까?
- 28. 동적으로 CPU 및 메모리 사용량을 캡처하십시오.
- 29. Windows 프로세스의 CPU 사용량을 계산 하시겠습니까?
- 30. Java에서 특정 프로세스에 대한 CPU 사용량을 얻는 올바른 명령 줄은 무엇입니까
소스 코드를 게시해야합니다. 그렇지 않으면 프로파일 러를 사용하는 것 외에 다른 도움을 줄 수 없습니다. –
[다음은 시간이 걸리는 것을 알아내는 간단하고 효과적인 방법입니다. ] (http://stackoverflow.com/questions/266373/one-could-use-a-profiler-but-why-not-just-halt-the-program/317160#317160) –