线上崩溃检测到统计模块造成了OOM
目前只用友盟做了页面统计和一些自定义数值上报。上报策略勾选了定时上报,间隔12小时。
线上监控到 OOM 崩溃,疑似友盟统计模块一次申请37M 多内存。且同一部机器会多次上报这一崩溃,所申请内存数值都是一样的 37748744 byte
崩溃堆栈:
06-29 02:36:15.420 19266 19350 E AndroidRuntime: java.lang.OutOfMemoryError: Failed to allocate a 37748744 byte allocation with 8388608 free bytes and 17MB until OOM, max allowed footprint 123983000, growth limit 134217728
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at java.util.Arrays.copyOf(Arrays.java:3260)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:660)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at java.lang.StringBuilder.append(StringBuilder.java:203)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONStringer.beforeKey(JSONStringer.java:386)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONStringer.key(JSONStringer.java:374)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONObject.writeTo(JSONObject.java:723)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONStringer.value(JSONStringer.java:237)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONArray.writeTo(JSONArray.java:613)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONStringer.value(JSONStringer.java:233)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONObject.writeTo(JSONObject.java:723)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONStringer.value(JSONStringer.java:237)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONArray.writeTo(JSONArray.java:613)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONArray.toString(JSONArray.java:585)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at java.lang.String.valueOf(String.java:2896)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSON.toString(JSON.java:90)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONObject.optString(JSONObject.java:575)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at org.json.JSONObject.optString(JSONObject.java:566)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.analytics.pro.o.a(CoreProtocolImpl.java:151)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.analytics.pro.o.j(CoreProtocolImpl.java:1)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.analytics.pro.o.a(CoreProtocolImpl.java:124)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.analytics.pro.o.c(CoreProtocolImpl.java:3)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.analytics.pro.o.a(CoreProtocolImpl.java:76)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.analytics.CoreProtocol.workEvent(Unknown Source:6)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.commonsdk.framework.UMWorkDispatch.handleEvent(UMWorkDispatch.java:6)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.commonsdk.framework.UMWorkDispatch.access$000(Unknown Source:0)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at com.umeng.commonsdk.framework.UMWorkDispatch$1.handleMessage(UMWorkDispatch.java:5)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193)
06-29 02:36:15.420 19266 19350 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:65)