请求 android 大佬帮助解决问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moonrailgun
V2EX    外包

请求 android 大佬帮助解决问题

  •  
  •   moonrailgun 277 天前 2616 次点击
    这是一个创建于 277 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近我们项目出现了一些性能问题,在低配手机上会出现大量的 anr 和 oom 的问题(主要是 android 9 10)

    在堆栈上的显示大多是:

    invalid pthread_t 0x<sanitized> passed to pthread_getcpuclockid *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** backtrace: #00 pc 0x0000000000054070 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) #01 pc 0x00000000000b9110 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_internal_find(long, char const*)+192) #02 pc 0x00000000000b9030 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_internal_gettid(long, char const*)+8) #03 pc 0x00000000000b8e24 /apex/com.android.runtime/lib64/bionic/libc.so (pthread_getcpuclockid+24) #04 pc 0x0000000000498c8c /apex/com.android.art/lib64/libart.so (art::Thread::GetCpuMicroTime() const+40) #05 pc 0x000000000049898c /apex/com.android.art/lib64/libart.so (art::GetSample(art::Thread*, void*) (.__uniq.52483287290921479263723184702455367361)+204) #06 pc 0x0000000000498564 /apex/com.android.art/lib64/libart.so (art::Trace::RunSamplingThread(void*)+320) #07 pc 0x00000000000b8b98 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) #08 pc 0x0000000000055794 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) 

    java.lang.OutOfMemoryError Exception java.lang.OutOfMemoryError: std::bad_alloc at com.facebook.jni.NativeRunnable.run at android.os.Handler.handleCallback (Handler.java:761) at android.os.Handler.dispatchMessage (Handler.java:98) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage (MessageQueueThreadHandler.java:27) at android.os.Looper.loop (Looper.java:156) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run (MessageQueueThreadImpl.java:233) at java.lang.Thread.run (Thread.java:776) 

    如果能够有对这方面有经验的 android 大佬能支援一下帮助解决/定位问题的话,将万分感谢。

    (BTW: 我们的项目是用 RN 写的)

    有偿

    有意向的请联系微信: amFja3lqamNuOTk5Y2w=

    万分感谢

    12 条回复    2025-03-30 15:43:38 +08:00
    murmurkerman
        1
    murmurkerman  
       277 天前 via iPhone
    看下 anr oom 分布,普通内存 4gb 以上设备有没有出现。然后需要通过日志埋点还愿用户路径,尝试本地复现。单堆栈信息不足以推断出问题,需要加额外的日志和诊断数据比如定时获取系统和应用内存大小使用情况。先本地本地尝试复现,使用 profier 看 cpu 和内存变化,dump head 对比下是否有大对象泄漏。
    zdglf
        2
    zdglf  
       277 天前
    没内存了。应该是有泄漏,得排查
    moonrailgun
        3
    moonrailgun  
    OP
       277 天前
    @murmurkerman 1.5g ~ 2g 手机会出现。日志埋点就是在任何地方都会出现。很奇妙。

    内存控制在 400m 左右,基本没上过 500m

    头疼的原因是行业均值 0.4%,我们 2%。。。。。


    大佬可以私聊?
    3630cn2023
        4
    3630cn2023  
       277 天前 via Android
    leakcanary 本地测速看有没有内存泄漏,要覆盖全部代码
    debuggeeker
        5
    debuggeeker  
       276 天前
    @moonrailgun 2%离谱了
    debuggeeker
        6
    debuggeeker  
       276 天前
    买低配设备本地排查,先跑半个小时 monkey ,然后排查内存泄露情况
    murmurkerman
        7
    murmurkerman  
       276 天前 via iPhone
    @moonrailgun 2g 设备难,莫非是 Android5.1 之类十年前的设备。低端设备加上非原生的应用难,这类设备我也没有太好的优化方案。

    我之前负责的 flutter 应用在低内存设备 3gb 一下冷启动超过 5 秒,好在 flutter 不运行在 main 线程上没有 anr ,除非不用 flutter ,没救。

    建议从数据上说话,说服老板去掉这部分设备的支持。1. 活跃用户机型内存分布。2. 每个内存桶中出现 anr 和 oom 的比例。3. 每个内存桶营收数据。4. 如果是 gp 包,好像只影响这些设备上商店排名。

    我觉得直接把最低 sdk 提升到 24 的样子差不多了。
    murmurkerman
        8
    murmurkerman  
       276 天前 via iPhone
    看漏了。要用 react native 的工具去看。
    对 react native 涉猎不多,通过关键词搜索下 react native anr memory leak
    https://medium.com/@hbnguyen/detecting-and-handling-memory-leaks-in-react-native-apps-1453fea08d4d
    toby1902
        9
    toby1902  
       276 天前
    最近才看到得物的团队关于类似问题的分享,得物 Android Crash 治理实践

    https://mp.weixin.qq.com/s/DAofLOIRqAdCm_wiWZ6m4A
    bettesafford24
        10
    bettesafford24  
       276 天前
    接广告接的太多了
    murmurkerman
        11
    murmurkerman  
       275 天前 via iPhone
    @toby1902 我还从没见过 dns 崩溃的,神奇。最常见的还是 webview 的一些 bug 。
    pursuer
        12
    pursuer  
       275 天前
    试试 android:largeHeap="true"看看能不能抢救下,最好还是把很耗内存的代码处理一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3032 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 12:32 PVG 20:32 LAX 04:32 JFK 07:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86