项目最近连续多次出现OOM,查询日志发现是在调用Gson.toJson()的时候发生了内存溢出。

String json = gosn.toJson(data)

错误日志先上图:

Android Gson大数据序列化时内存溢出处理_json

最开始出现这个异常的时候想着更改FastJson来做数据的处理,但是后面发现还是会出现这个问题,错误日志如下:

Android Gson大数据序列化时内存溢出处理_json_02

发现使用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异常