2021/04/05

[筆記] Effective Java #67 謹慎地進行優化

Effective Java 3rd 簡體中文版筆記 #67 謹慎地進行優化
  1. 很多計算上的過失都被歸咎於效率 (沒有達到必要的效率),而不是任何其他原因。
  2. 不要去計較效率上的小小得失,在 97% 的情況下,不成熟的優化才是一切問題的根源。
  3. 在優化方面,應該遵守兩個規則:
    1. 不要進行優化
    2. (針對專家) 在你沒有絕對清楚未優化方案之前,不要進行優化。
不要為了效能而犧牲合理的架構,要編寫好的程式碼而非快的程式碼。但這不表示在設計過程中,不需要考慮效能。要避免那些限制效能的設計決策,像是 API、wire-level 及資料持久層的格式,都有機會造成效能上的限制,應謹慎設計,一旦這類的模組要改變都不太容易。
在每次優化前後,要作效能測試,觀察它帶來的效益。或許會發現優化前後其實沒有太大的差異,大部分認為需要優化之處,往往不是影響效能的關鍵。如果有好的工具,直接分析出哪部分的程式需要優化,就能減少優化後才發現優化處不是影響效能關鍵的窘境。
Java 的效能模型並沒有很好的定義,因為在不同的 JVM 實作、不同版本或是不同的 CPU 機器上都各不相同。

轉載請註明原文網址 https://cookieandcoketw.blogspot.com/2021/03/effective-java-67-optimize.html

沒有留言:

張貼留言