2013-05-13 35 views
1

在分析我的應用程序時,調用樹和熱點的屏幕截圖如下。我可以說cglib的MethodInterceptor.intercept()是一個熱點嗎?這不是我編寫的代碼,甚至是直接調用它,這是grails內部調用。如果是,我該如何解決?在Jprofiler中爲Grails應用程序標識熱點

我知道我通常應該只查看「Runnable」線程狀態。但是,當線程狀態設置爲「等待」或「所有狀態」時,這僅顯示爲熱點。這是否意味着攔截()正在等待某個事件發生?爲什麼這種方法在等待所有的流程?以及如何解決這個問題?

Call Tree:

Hot Spots:

+0

如果我沒有弄錯,那就是調用你的真實服務方法的代理。創建代理來將您的服務方法包裝在一個事務中。 – 2013-05-14 00:37:15

+0

我不明白59 OrderService.pay()的調用是如何花費1570s的,而在樹內同一個59的OrderService.pay()調用需要7101ms。我可以在網絡服務器或應用程序中調整哪些參數,以便不會等待或至少減少等待時間? – 2013-05-14 00:57:46

+2

MethodInterceptor和OrderService之間存在非概要類。嘗試切換到「採樣」並禁用所有過濾器,然後再次查看熱點視圖。 – 2013-05-14 07:43:51

回答

2

有在MethodInterceptor和OrderService之間的非異形類。嘗試切換到「採樣」並禁用所有過濾器,然後再次查看熱點視圖。