在我的大多数类(特别是服务器资源)中,我倾向于创建com.google.gson.Gson按需的新实例.有时我使用默认构造函数创建它们(用于处理简单的POJO),有时我会使用使用自定义创建的更复杂的变体com.google.gson.GsonBuilder.
我知道这Gson是一个线程安全的类,所以没有什么可以反对重用相同的实例Gson而不是创建新的实例.哎呀,我甚至可以为此重复使用静态常量!
我的问题是:我应该在需要时创建新实例,还是应该只创建一个实例?如果我使用Gson创建的实例序列化简单的POJO GsonBuilder并教会如何解析更复杂的数据结构(几乎没有注册自定义序列化程序),那么我将面临什么样的性能影响?
我知道这是一个老问题,但为了将来的参考,这个问题的答案是,如果可能的话,您应该选择单个实例。
GSON 对象的创建成本很高,具体取决于您向其注册的自定义反序列化器/序列化器/处理程序的数量。我怀疑您是否会从中看到任何巨大的性能提升。
关于第二个问题,GSON 内部有一个已注册序列化器的列表,并且每个序列化器都会根据您尝试解析的对象进行检查。因此,每次注册自定义序列化器时,您基本上都会添加更多迭代,但与将几个大的笨拙对象放入内存相比,这并不是一个大的性能问题。
| 归档时间: |
|
| 查看次数: |
2179 次 |
| 最近记录: |