伊谢尔伦2017-04-17 13:11:25
首先,程式碼這種寫法相對來說還是比較清晰的,除了查詢Json資料應該封裝到DAO層去,不是對效能有極端要求,不建議做過多最佳化。
但如果真有必要,提供幾個最佳化想法:
- 如果你的BlackList很大,
1.1 可以預估取出值的數量,在新建的時候可以調整capacity,甚至調整load factor,以免多次開闢記憶體空間;
1.2 或創建一次就直接進行緩存,用觸發式的更新機制,避免重複創建;
1.3 用TreeMap取代HashMap,可以稍微提升查詢效能,其實你這個場景完全可以用Set,可以稍微減少記憶體開銷;
1.4 可以把這個List的Id寫入到redis或memcached中去,這樣就不佔用本應用的記憶體空間。
- Json反序列化可以使用表現較高的類別庫,例如Jackson,fastjson
- 如果你取得資料的那端可以控制,可以考慮效能更高的序列化方法,例如protobuff。
- 查詢結果的List如果數量可以預估,那麼也可以設定初始的capacity。
感覺你自己提的想要1w個對象,卻不想創建1w個對象,這感覺自我矛盾的事情,貌似是沒有任何辦法的。
回覆
0