【问题标题】:what's the differences between Android LMK and Linux OOMAndroid LMK 和 Linux OOM 有什么区别
【发布时间】:2017-09-28 12:00:14
【问题描述】:

我知道Android LMK是基于Linux OOM,但是google为什么要开发新算法(LMK)呢? LMK比原来的OOM好吗?还是有其他技术原因?

【问题讨论】:

    标签: android memory-management


    【解决方案1】:

    您认为它们具有相同的作用是正确的,即在系统内存不足之前释放内存(通过杀死应用程序)。 但是,决定杀死哪个应用程序的 OOM 和 LMK 算法之间存在细微差别。

    LMK会在优先的后台应用程序、隐藏应用程序或暂停的应用程序中尝试杀死(它连接到Android的ActivityManager以知道谁在运行,谁没有运行)。这样,它将让用户继续使用他当前的应用程序并杀死其他应用程序。 LMK 最优先的是让用户顺利使用他的应用程序。其次,LMK一般会避免杀死系统应用程序,更喜欢用户应用程序并让系统运行。

    OOM 将尝试杀死使用大部分内存的优先应用程序,而不用担心该应用程序当前已被用户使用,OOM 想要做的是保持整个系统“安全”并运行良好(用户?谁在乎?;))。然而,它可以决定杀死一些对系统有用但又是最大的“内存吞噬者”的系统守护进程。 OOM 杀手算法基于 oom_score,该算法过去基于非常复杂的启发式算法计算,现在主要基于消耗的内存百分比。

    【讨论】:

    • 哇!谢谢!你的回答很有帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 2018-11-26
    • 2023-02-10
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多