V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zpxshl
V2EX  ›  Android

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

  •  
  •   zpxshl · May 23, 2021 · 13920 views
    This topic created in 1805 days ago, the information mentioned may be changed or developed.

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

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

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

    所以这个问题只能在内核级别(实现 copy-on-write 虚拟页面)或者 JVM 级别解决,问问题的人有水平的话想几分钟就知道,那还要问就是想白嫖你。
    zpxshl
        14
    zpxshl  
    OP
       May 24, 2021 via Android
    @billccn 所以答案就是 fork,,,自带 cow
    LongYard
        15
    LongYard  
       May 25, 2021
    吓尿了。。。不会是应届吧。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   854 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 22:58 · PVG 06:58 · LAX 15:58 · JFK 18:58
    ♥ Do have faith in what you're doing.