项目最近连续多次出现OOM,查询日志发现是在调用Gson.toJson()的时候发生了内存溢出。
String json = gosn.toJson(data)
错误日志先上图:
最开始出现这个异常的时候想着更改FastJson来做数据的处理,但是后面发现还是会出现这个问题,错误日志如下:
发现使用Gson和FastJson都会在写入数据的时候出现内存泄漏,最后暂时用JSONStringer来做处理,替换代码如下:
// Gson gson = new Gson();
// String json = gson.toJson(Snapshot, ScribeSnapshot.class);
String json = null;
JSONStringer jsonStringer = new JSONStringer();
try {
jsonStringer.value(videoScribeSnapshot);
json = jsonStringer.toString();
} catch (JSONException e) {
e.printStackTrace();
}
后续暂时未出现OOM异常