搜尋

首頁  >  問答  >  主體

JAVA代码如何优化?

黄舟黄舟2767 天前366

全部回覆(1)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:11:25

    首先,程式碼這種寫法相對來說還是比較清晰的,除了查詢Json資料應該封裝到DAO層去,不是對效能有極端要求,不建議做過多最佳化。
    但如果真有必要,提供幾個最佳化想法:

    1. 如果你的BlackList很大,
      1.1 可以預估取出值的數量,在新建的時候可以調整capacity,甚至調整load factor,以免多次開闢記憶體空間;
      1.2 或創建一次就直接進行緩存,用觸發式的更新機制,避免重複創建;
      1.3 用TreeMap取代HashMap,可以稍微提升查詢效能,其實你這個場景完全可以用Set,可以稍微減少記憶體開銷;
      1.4 可以把這個List的Id寫入到redis或memcached中去,這樣就不佔用本應用的記憶體空間。
    2. Json反序列化可以使用表現較高的類別庫,例如Jackson,fastjson
    3. 如果你取得資料的那端可以控制,可以考慮效能更高的序列化方法,例如protobuff。
    4. 查詢結果的List如果數量可以預估,那麼也可以設定初始的capacity。

    感覺你自己提的想要1w個對象,卻不想創建1w個對象,這感覺自我矛盾的事情,貌似是沒有任何辦法的。

    回覆
    0
  • 取消回覆