2011-02-28 2 views
13

내 구성 요소 중 하나가 실행하는 데 너무 많은 시간이 걸립니다. 많은 dao 메소드를 호출하는 많은 서비스를 호출합니다. 이제는 호출하는 각 메서드에 걸린 시간을 가져올 수있는 방법이 있습니까?
너무 많은 메소드가 있으므로 시간을 계산하기 위해 각 메소드 전후에 System.currentmillis을 쓰고 싶지 않습니다.
저는 인터셉터를 사용해야 할 수도 있고, 어떤 프로파일 러가 그렇게 할 수 있다고 생각합니다. 나는 잘 모르겠다. 제발 도와주세요.어떤 방법으로 시간이 오래 걸리는지 확인하는 방법은 무엇입니까?

+1

대부분의 IDE에는 프로파일 러 기능이 내장되어 있습니다. – gigadot

+0

@gigadot 내가 이클립스를 사용 중입니다. –

+0

불행히도 Netbeans의 팬이지만 프로파일 러로 측정 한 시간 만 상대적인 예상치를 제공한다고 덧붙이고 싶습니다. 그것은 themethod에 소비 된 실제 시간이 아닙니다. 프로파일 러는 메소드에 자체를 첨부해야하므로 추가 오버 헤드가 발생합니다. – gigadot

답변

7

jvisualvm (올바르게 기억하는 경우)은 JDK와 함께 사용해야합니다. 그것은 당신의 JVM을위한 GUI이고, 정말 좋은 기능을 가지고 있습니다. 그 스크린 샷뿐만 아니라 거기에 features ...

을 확인하고 문제를 찾기 위해 시간을 측정로 보지 말라 Steps to integrate in eclipse

+0

나는 이것을 사용하고있다. 그러나 나는 방법으로 찍은 시간을 보여주는 곳을 찾지 못한다. 그렇지 않으면 시간이 전혀 없다. –

+1

응용 프로그램을 실행할 때 cpu 및 memory profiler/sampler를 활성화해야합니다. 그렇다면 핫 스폿을 적극적으로 보게 될 것입니다. 일단 실행이 끝나면 소프트웨어의 다른 부분을 감시 할 수있는 매우 정교한 보고서를 작성합니다. (http://visualvm.java.net/images/profiler.jpg 참조) 도움이 되길 바랍니다. – posdef

0

일식 에 실행기로 통합하는 다음 단계를 수행 할 수 있습니다.

느린 속도로 노출하십시오. 무한 루프 인 경우와 동일한 방법을 사용하십시오.

즉 느린 속도로 몇 번 멈추고 매 스레드마다 호출 스택을 검사합니다. 유죄의 방법과 코드 라인이 여러 샘플에 나타납니다. last paragraph of this post을 확인하십시오.

Here's more on how it works.

관련 문제