隨筆:設計優化原則
阿新 • • 發佈:2019-01-09
設計優化
使用單例模式:
對於頻繁使用的物件,可以省略建立物件所花費的時間.
由於new次數的減少,對系統記憶體的使用頻率也會降低,減輕GC壓力,縮短GC停頓時間.
單例模式又有普通單例,同步單例,內部類單例,效能比較完善的是內部類單例.
代理模式:
場景1:延遲載入,介面,實現類,代理類
動態代理
jdk和cglib的動態代理
享元模式:如果在一個系統中存在多個相同的物件,那麼只需共享一份物件的拷貝,而不必每一次使用都建立新的物件.
原理:需要一個享元工廠來建立物件,需要建立的時候,如果沒有就建立一個放入hashmap中,下次再從hash取出來使用.
可以節省重複建立物件的開銷,因為被享元模式維護的相同物件只會被建立一次,當建立物件比較耗時,可以節省大量時間.
由於建立物件的數量減少,所有對記憶體的需求也減少,使GC壓力降低,系統更快.
觀察者模式.
當一個物件的行為依賴於另一個物件的狀態變化時,使用觀察者模式就不需要去實時監聽,只在另一個物件變化時通知觀察者,這樣就節省了系統資源.
NIO操作很容易成為效能瓶頸,所以儘可能的在I/O讀寫中加入緩衝元件.
使用快取
使用池,執行緒池和資料庫連線池