生产中的 new Gson() 构造函数有多昂贵?

Bob*_*oss 5 premature-optimization gson

我正在创建一个新的 Netty 管道,我正在尝试:

  1. 避免过早优化。
  2. 编写易于向我的一名实习生解释的代码。

这种工厂方法当然很容易解释:

public String toJSON()
{
    Gson gson = new Gson();
    return gson.toJson(this);
}
Run Code Online (Sandbox Code Playgroud)

在一个有点相关的问题中,OP 询问重用 Gson 对象的单个实例是否可以(意味着线程安全)。我的问题略有不同:是否有充分的理由共享对象?如果是这样,在什么复杂程度下值得共享 Gson 对象?权衡在哪里?

Jes*_*son 2

它很昂贵,并且成本随着您使用 Gson 绑定的数据模型的复杂性而变化。我写了一篇文章“ Reflection Machines”,解释了为什么创建 Gson 实例成本高昂且应尽量减少。

\n