1。避免過早優化
主要格言:
- 效能常常以不必要的最佳化為代價。
- 過早的最佳化被認為是程式設計中的「萬惡之源」。
推薦規則是:
- 規則 1:不要最佳化。
- 規則 2:僅在需求明確且不可避免時進行最佳化。
2。專注於清晰正確的程式碼架構
- 初始目標:在專注於效能之前創建結構良好、可維護的程式。
- 如果架構基礎紮實,稍後可以加入最佳化,而不會影響程式碼的完整性。
- 封裝:使用資訊隱藏來隔離設計選擇,促進局部變更和改進,而不影響整個系統。
3。在初始設計中考慮性能,但避免過早的承諾
- 在設計過程中,避免做出限制未來性能的選擇,尤其是在:
- API:確保關鍵方法不會增加效能損失,例如建立不必要的物件。
- 持久資料格式:選擇具有靈活性和效率的資料格式。
- 低效 API 範例:java.awt.Component 類別的 getSize 方法傳回可變的 Dimension 對象,需要不必要的分配並影響效能。
4。使用適當的工具評估性能(分析和基準測試)
- 分析器:使用分析工具來識別程式消耗最多時間的地方,避免最佳化不是真正瓶頸的部分。
- 範例工具:建議使用 jmh(Java Microbenchmark Harness)來進行 Java 中的詳細效能微基準測試。
- 分析有助於識別低效演算法(例如二次演算法),在專注於低階改進之前應將其替換為更有效率的演算法。
5。考慮不同環境下的可移植性和效能變化
- 實作與硬體
- Java 的效能在 JVM 版本、硬體平台和配置之間可能存在很大差異。
- 檢查所有目標平台的最佳化非常重要,以確保效能的一致性。
6。開發後最佳化流程
建議步驟:
- 完成設計並實現清晰簡潔的程式版本。
- 評估整體表現。如有必要,找到並優化對效能影響最大的區域。
- 優先選擇高效率演算法;低階最佳化無法解決演算法選擇不當的問題。
- 每次調整後衡量表現以確認正面影響。
最終總結
- 最佳實踐:專注於編寫高品質的程式碼,因為良好的設計通常與高效的效能相容。
- 持續評估:始終衡量最佳化對效能的影響。
- 一般範例:當關鍵方法因不必要的物件而影響效率時,請考慮替代方案,例如不可變類型或傳回原始值而不是物件的方法,從而減少分配並使程式更快、更有效率。
以上是Item 優化時要小心的詳細內容。更多資訊請關注PHP中文網其他相關文章!