V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zpxshl
V2EX  ›  Android

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

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

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

    第 1 条附言  ·  2021-05-24 12:59:04 +08:00
    和朋友讨论了下,大概就是 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   ·   实用小工具   ·   2504 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:45 · PVG 23:45 · LAX 07:45 · JFK 10:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.