繁体   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