Tencent / VasSonic

VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS team, which is intended to speed up the first screen of websites working on Android and iOS platform.
Other
11.8k stars 1.61k forks source link

SDK能否添加oom捕获? #357

Open 1mf2 opened 4 years ago

1mf2 commented 4 years ago

应用线上异常抛出OOM "java.lang.OutOfMemoryError: Failed to allocate a 183879624 byte allocation with 25165824 free bytes and 159MB until OOM, target footprint 394818520, growth limit 536870912 at java.lang.StringFactory.newStringFromBytes(StringFactory.java:225) at java.lang.StringFactory.newStringFromBytes(StringFactory.java:61) at java.io.ByteArrayOutputStream.toString(ByteArrayOutputStream.java:245) at com.tencent.sonic.sdk.SonicServer.readServerResponse(SonicServer.java:399) at com.tencent.sonic.sdk.SonicServer.getResponseStream(SonicServer.java:315) at com.tencent.sonic.sdk.StandardSonicSession.handleFlow_FirstLoad(StandardSonicSession.java:343) at com.tencent.sonic.sdk.SonicSession.handleFlow_Connection(SonicSession.java:749) at com.tencent.sonic.sdk.SonicSession.runSonicFlow(SonicSession.java:567) at com.tencent.sonic.sdk.SonicSession.access$100(SonicSession.java:54) at com.tencent.sonic.sdk.SonicSession$2.run(SonicSession.java:524) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:929) " "java.lang.OutOfMemoryError: Failed to allocate a 180720840 byte allocation with 45394656 free bytes and 43MB until OOM, max allowed footprint 536870912, growth limit 536870912 at libcore.util.CharsetUtils.toUtf8Bytes(Native Method) at java.lang.String.getBytes(String.java:896) at java.lang.String.getBytes(String.java:925) at com.tencent.sonic.sdk.SonicUtils.getSHA1(SonicUtils.java:680) at com.tencent.sonic.sdk.SonicServer.separateTemplateAndData(SonicServer.java:441) at com.tencent.sonic.sdk.SonicServer.getTemplate(SonicServer.java:358) at com.tencent.sonic.sdk.SonicSession.doSaveSonicCache(SonicSession.java:1027) at com.tencent.sonic.sdk.SonicSession$1.handleMessage(SonicSession.java:477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:198) at android.os.HandlerThread.run(HandlerThread.java:65)

SDK版本是3.1.0版本

机型在oppo Android 8.1.0机型和荣耀 android 10和小米android10上出现过