2013-05-13 4 views
1

내 애플리케이션을 프로파일 링 할 때 CPU 트리에서 콜 트리 및 핫 스폿의 스크린 샷이 아래에 나와 있습니다. cglib의 MethodInterceptor.intercept()가 핫스팟이라고 말할 수 있습니까? 그것은 내가 작성하거나 직접 호출하는 코드가 아니라 grails 내부 호출입니다. 그렇다면 어떻게 수정합니까?grails 애플리케이션 용 Jprofiler에서 핫 스폿 식별

나는 일반적으로 "Runnable"스레드 상태 만보고 있어야한다는 것을 알고 있습니다. 그러나 이것은 스레드 상태가 "Waiting"또는 "All States"로 설정된 경우에만 핫 스폿으로 표시됩니다. intercept()가 어떤 이벤트가 발생하기를 기다리고 있다는 뜻입니까? 어떻게 모든 흐름에서 기다리는 것과 같은 방법입니까? 이 문제를 해결하는 방법은 무엇입니까?

Hot Spots:

+0

내가 실수가 아니라면 실제 서비스 방법이라고 부르는 프록시가 있습니다. 프록시는 트랜잭션에서 서비스 메소드를 랩핑하기 위해 작성됩니다. –

+0

OrderService.pay()의 59 개 호출에서 1570을 사용하는 방식과 OrderService.pay()의 59 개 호출에서 7101ms 걸리는 방식을 이해할 수 없습니다. 웹 서버 또는 앱에서 조정할 매개 변수는 무엇입니까? 따라서 기다릴 필요가 없으며 최소한 기다릴 필요가 없습니다. –

+2

MethodInterceptor와 OrderService 사이에 프로파일이 적용되지 않은 클래스가 있습니다. "샘플링"으로 전환하여 모든 필터를 비활성화 한 다음 핫 스폿보기를 다시보십시오. –

답변

2

Call Tree:

의 MethodInterceptor과는 OrderService 사이의 비 프로파일 클래스가 있습니다. "샘플링"으로 전환하여 모든 필터를 비활성화 한 다음 핫 스폿보기를 다시보십시오.

관련 문제