簡體   English   中英

我應該重用一個GSON實例還是按需創建新實例?

[英]Should I reuse one instance of GSON or create new ones on demand?

在我的大多數課程(特別是服務器資源)中,我傾向於按需創建com.google.gson.Gson新實例。 有時我使用默認構造函數創建它們(用於處理簡單的POJO),有時我使用使用自定義com.google.gson.GsonBuilder創建的更復雜的變體。

我知道Gson是一個線程安全的類,所以沒有什么可以反對重用Gson的相同實例而不是創建新的實例。 哎呀,我甚至可以為此重復使用靜態常量!

我的問題是:我應該在需要時創建新實例,還是應該只創建一個實例? 如果我使用GsonBuilder創建的Gson實例序列化簡單POJO並教授如何解析更復雜的數據結構(幾乎沒有注冊自定義序列化程序),那么我將面臨什么樣的性能影響?

我知道這是一個古老的問題但是為了將來參考,這個問題的答案是,如果可能的話,你應該選擇單個實例。

根據您注冊的自定義反序列化器/序列化器/處理程序的數量,創建GSON對象的成本很高。 我懷疑你會從中看到任何重大的性能提升。

關於第二個問題,GSON內部有一個已注冊的序列化程序列表,每個都會根據您要解析的對象進行檢查。 因此,每次注冊自定義序列化程序時,您基本上都會添加更多迭代,但同樣,與將幾個大笨拙的對象放入內存相比,這不是一個大的性能問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM