android 面试题 “设计个内存泄漏抓取框架,检测到泄漏时 dump 内存很卡,能怎样优化” - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zpxshl
V2EX    Android

android 面试题 “设计个内存泄漏抓取框架,检测到泄漏时 dump 内存很卡,能怎样优化”

  •  
  •   zpxshl 2021-05-23 21:50:13 +08:00 13250 次点击
    这是一个创建于 1691 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬有思路吗? 我想是开条进程取去 dump ? 但是开进程能 dump 到吗。。。

    第 1 条附言    2021-05-24 12:59:04 +08:00
    /div>
    和朋友讨论了下,大概就是 fork 子进程 dump 。
    卡顿是因为 dump 的时候需要暂停所有线程。
    15 条回复    2021-05-25 11:50:37 +08:00
    yitingbai
        1
    yitingbai  
       2021-05-23 22:00:46 +08:00
    这个面试题太高级了吧, 感觉已经超出了普通 APP 开发者的知识范围了.
    WngShhng
        2
    WngShhng  
       2021-05-23 23:42:00 +08:00
    nuk
        3
    nuk  
       2021-05-23 23:48:33 +08:00
    注入远程线程,fork 后再 dump,不过一个 android 进程能占多大内存,直接 dump 到 /tmp 是最省事的吧。。
    zpxshl
        4
    zpxshl  
    OP
       2021-05-24 00:21:35 +08:00 via Android
    @nuk 几百 m 到几 g,dump 到文件不会快到哪里去吧
    nuk
        5
    nuk  
       2021-05-24 00:26:36 +08:00
    @zpxshl 可是 dump 到 /tmp 是写到内存啊
    zpxshl
        6
    zpxshl  
    OP
       2021-05-24 01:24:15 +08:00 via Android
    @nuk 涉及到知识盲区了,我研究研究。。。
    liuidetmks
        7
    liuidetmks  
       2021-05-24 08:38:16 +08:00
    这个不会是 "有个 bug 无法解决,找个面试的问问吧"

    面试问这个,大概率想白嫖你
    hongch
        8
    hongch  
       2021-05-24 11:05:11 +08:00
    这是面内核开发岗?
    oxromantic
        9
    oxromantic  
       2021-05-24 12:22:57 +08:00
    “很卡?我做过,不卡啊”
    zpxshl
        10
    zpxshl  
    OP
       2021-05-24 12:58:03 +08:00 via Android
    @hongch 应用开发
    nicocho
        11
    nicocho  
       2021-05-24 13:54:33 +08:00
    ..这移动应用开发 都卷成这样了...
    方便说下面试岗位薪资么
    zpxshl
        12
    zpxshl  
    OP
       2021-05-24 14:00:05 +08:00 via Android
    @nicocho 薪资挺有吸引力的...
    billccn
        13
    billccn  
       2021-05-24 18:13:56 +08:00
    这个题目很有问题的。如果应用可以继续跑,那它内存就在变化,你 dump 出来的可能是无效的。比如你 dump 过程中它正好 GC 了,把部分对象都挪了个窝,那你已经 dump 的部分里面的指针都可能是错的。不要说这还涉及 Java 内存模型中很多数据你是无法绕过 lock 直接异步读取的,强读的话可能会出现一个 64 位的值只写了一半的问题。

    所以这个问题只能在内核级别(实现 copy-on-write 虚拟页面)或者 JVM 级别解决,问问题的人有水平的话想几分钟就知道,那还要问就是想白嫖你。
    zpxshl
        14
    zpxshl  
    OP
       2021-05-24 23:38:09 +08:00 via Android
    @billccn 所以答案就是 fork,,,自带 cow
    LongYard
        15
    LongYard  
       2021-05-25 11:50:37 +08:00
    吓尿了。。。不会是应届吧。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3403 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:40 PVG 12:40 LAX 20:40 JFK 23:40
    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