「效能呼叫圖形」和「方法詳細資料」視圖可幫助您識別應用程式的哪個部分最花時間。 然後您可以研究是否可以讓這些耗時的區域更有效率。 分析應用程式的程式碼時,應注意會導致效能不足的常見程式撰寫錯誤,這會對您有所幫助。
不必要的計算:隨著應用程式逐漸發展及演算法的精進, 或隨著資料的變更,之前版本所需之程式碼的某些部分可能已不復使用,但卻沒有被移除。 因為這個原因,有許多大型程式雖執行計算,但其產生出的結果卻都用不到。 就是浪費在此無用程式碼上的時間而造成瓶頸。
其他不必要的常見計算是自動產生或依預設而產生,即使這些都不是必要的計算。舉例來說,在程式關閉期間不必要地釋放資料結構的應用程式,或即使工作站上沒有使用者,但還是會開啟與工作站連線的應用程式,均是此瓶頸類型。 您可以側寫效能以找出花在無用程式碼的時間。一旦確信計算的結果毫無用處的話, 您就可以移除程式碼。
過早的計算:還不需要其結果之前就執行的任何計算會造成瓶頸。舉例來說,如果使用者未要求執行排序,就先排序數字清單,這樣就不合理了。效能資料無法讓您知道是否可以延遲計算;不過,它可以告訴您計算的成本,因此您可以決定是否要延緩它。
不必要的重新計算:程式有時會重新計算所需的值而不快取它們供以後使用。例如,如果計算內嵌於迴圈中,那麼決定常數字串的長度會導致不必要的計算;字串長度會重新計算多次,而每次都得到相同的值。效能資料可告訴您發生重新計算的地方,因此您可以選擇在經過某個計算之後儲存此值。
無效率的計算:選擇不當的演算法或資料結構設計徒增程式的工作量。如果是小的資料集,那麼起始效能應該可令人接受, 但是當出現更大或更複雜的資料集時,效能等級就不好。效能側寫可告訴您每一個計算在不同等級上的成本,所以您可以預測是否會有更大資料集的問題。然後您可以使用替代的演算法及資料結構讓工作更快完成。
記憶體洩漏及執行緒瓶頸也會降低效能。 請使用洩漏偵測及執行緒分析側寫集來收集資料以解決這些問題。請注意,您不能於收集洩漏偵測資料的同時,又收集其他的執行時期分析資料。