![](/img/trans.png)
[英]FacesServlet.service() method eating too much time while serving requests (high self-time)
[英]How to identify which methods are eating time while serving request for a webpage?
我的JSF(webapp)頁面需要很長時間才能加載。 通過firebug測試,大部分時間都花在等待服務器的響應上。 所以我認為服務器上的東西正在耗費時間。 我一直在嘗試使用基於Netbeans的分析器獲得一些提示,但在分析CPU性能時,它只顯示了從某個時間點開始在每種方法中花費的時間。 因此,當我發送頁面請求時,我無法弄清楚正在消耗的時間。
您能否提供一些提示,說明我應該如何獲得這些信息,即哪些方法在提供請求時正在節省時間?
我認為你應該看看一個Profiler工具 ,如果你有一個龐大的系統,並希望以專業的方式完成工作。 否則,您將在每次調用之前使用經過時間的方法跟蹤您自己的代碼(lol)
我已經使用過Borland OptimizeIt,它做得很好,回到過去:)
看一眼:
Jvisualvm (Java類本身) visualvm.java.net (在Netbeans中使用過)
如果你使用eclipse看看TPTP包
在服務器上花時間。 首先,我會檢查這是否意味着網絡正在誘導延遲(你需要檢查一下firebug如何衡量這一點)。
如果您確認不是網絡延遲問題,那么最佳路徑將是分析器,具體取決於您的平台和應用程序的大小,您可以做出最佳選擇。
例如,如果您的應用程序加載的類別少於65k,我會選擇jvisualvm,否則您可能會遇到問題。
啟動jvisualvm后,您可以將其附加到您的應用程序進程。 一旦進入那里,我建議你首先嘗試采樣分析,它在資源消耗方面不那么具有攻擊性(不確定你的場景有多大或多大,儀器分析可能太重而無法支持)。
您只需要將jvisualvm附加到您的過程,轉到Sampler並按下Start按鈕,將在該時間點之后收集數據,因此在您激活采樣后,您應該觸發您的請求,可能需要幾次以便您可以獲得更好地了解時間花在哪里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.