首先,我在看 org.lintx.plugins.yinwuchat.bungee.json.InputBase 的时候发现了以下代码
public static InputBase getObject(String json){
try {
JsonParser parser = new JsonParser();
JsonElement jsonTree = parser.parse(json);
// .......
Gson gson = new Gson();
inputModel = gson.fromJson(json,new TypeToken<InputCoolQ>(){}.getType());
// .....
以下是关于 性能 的建议而不是bug提交
Gson 已经提供 JsonParser.parseString(String) 方法, 不需要new一个JsonParser
不应该每次都 new Gson(), 这会拖慢代码执行效率, 原因是 每次生成gson都会重新生成一系列工厂 就在这生成的过程中拖慢了执行效率, 你应该使用 private static final Gson GSON_INSTANCE = new Gson(); 将其存储起来, 像下面这样
public class InputBase {
private static final Gson GSON_INSTANCE = new Gson();
private static final Type INPUT_COOLQ_TYPE = new TypeToken<InputCoolQ>(){}.getType();
//.......
inputModel = GSON_INSTANCE.fromJson(json, INPUT_COOLQ_TYPE);
//.......
}
虽然这只是一个类,但是我推荐你查找每个类似的地方,都将其替换掉,为了性能考虑
首先,我在看
org.lintx.plugins.yinwuchat.bungee.json.InputBase的时候发现了以下代码以下是关于 性能 的建议而不是bug提交
Gson 已经提供
JsonParser.parseString(String)方法, 不需要new一个JsonParser不应该每次都
new Gson(), 这会拖慢代码执行效率, 原因是每次生成gson都会重新生成一系列工厂就在这生成的过程中拖慢了执行效率, 你应该使用private static final Gson GSON_INSTANCE = new Gson();将其存储起来, 像下面这样虽然这只是一个类,但是我推荐你查找每个类似的地方,都将其替换掉,为了性能考虑