写点什么

Lyft 如何检测生产中安卓的内存泄漏

  • 2023-03-22
    北京
  • 本文字数:849 字

    阅读完需:约 3 分钟

Lyft如何检测生产中安卓的内存泄漏

尽管现代的安卓和 iOS 工具都能通过本地构建检测内存泄露风险,但应用程序在生产环境中的内存表现却依旧得不到百分百的保障。生产环境中的程序可能在各种条件下运行在各种设备上,为此,Lyft的工程师将A/B测试与内存可观察性相结合,从而检测可能造成内存泄漏的应用功能。


在发布大型且复杂的功能点时,我们需要特别关注其在内存使用方面是否会造成回归。这点在包含本地 C/C++代码的功能发布时更为关键,因为这部分代码更易于引入内存泄漏。


在一般情况下,Lyft 工程师所遵循的方式是用测量的应用程序的标准内存行为基线,对比在 A/B 测试中所采集的特定功能受众子群数据。在评估应用的整体内存使用上,Lyft 工程师考虑了几款安卓上可用来检索内存使用指标的API:比例集大小(PSS)、唯一集大小(USS)、常驻内存大小(RSS)。其中 RSS 因其在性能方面的特点,以及可以不受采样率限制的特性而脱颖而出。其他 Lyft 工程师们感兴趣的指标,如 JVM 堆和本地堆大小等,都支持在安卓运行时直接采集。


内存指标的重要采集场景有两种:每次 UI 界面关闭时,以及用户在同一界面长时间停留的情况下每分钟的采集间隔。


因此,为判断一项功能是否会造成内存回归,Lyft 工程师对比了用户群组在运行禁用该功能时的原始版本,与启用该功能应用版本的情况。内存使用情况随用户而异,故而将应用内存使用足迹以曲线形式显示,如果两种情况下内存足迹曲线出现,则表示可能存在内存回归情况,如下图表示:



一个有趣的发现是,内存泄漏只影响一小部分用户。因此,除了百分比较高的部分(取决于用户群组大小),内存足迹曲线实际是会几乎重合的。如下图中所示,内存泄漏只会发生在极特殊的情况下,仅影响用户群组的最后一段百分比。



Lyft 的工程师称,这种方式已被证明可以有效检测内存泄漏,尤其是特殊情况下极易在本地测试时遗漏的内存泄露。还请不要错过 Lyft 原文中的全部细节。


原文链接

How Lyft Detects Android Memory Leaks in Production


相关阅读:

探索 Android 14:首个开发者预览版的新功能与特性

Spotify 移动工程平台迁移:将 Android 和 iOS 代码库迁移到 Bazel

2023-03-22 08:007913

评论

发布
暂无评论
发现更多内容

Python+Selenium——自动办公美梦的破碎与重建

小匚

Python 自动化 办公

2020年Python文章盘点,我选出了个人TOP10

Python猫

Python 学习 编程 技术

牛笔了!难道Android真的凉了?Android面试题及解析

欢喜学安卓

android 程序员 面试 移动开发

LeetCode题解:347. 前 K 个高频元素,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

DeFi中的关键——智能合约 | 白话区块链入门220

CECBC

区块链

AEM公链APP系统开发|AEM公链软件开发

系统开发

第十一周作业

Jack

深入浅出Android!2021京东最新Android面试真题解析,震撼来袭免费下载!

欢喜学安卓

android 程序员 面试 移动开发

前端组件化基础知识

三钻

大前端 组件化

(无聊预警)来啊一起冲浪啊 - 网络协议01

Max Zhang - 张亦弛

网络协议 基础知识 OSI七层协议

SSH 免密码/免用户名/免IP登录云服务器实践

穿甲兵

SSH 服务器

「架构师训练营 4 期」 第一周 - 1001

凯迪

高德地图、百度地图 都不如“人的智慧”

小匚

Python 深度思考 产品 日常思考

零基础工程师绘图指南,半小时水平越级提升!

穿甲兵

架构 设计 软件工程 分层架构

区块链2020年终盘点

CECBC

区块链

架构师训练营知识点整理

garlic

架构师训练营第 1 期

极客大学架构师训练营 - 架构师技术图谱 - 大作业二

好吃不贵

架构师训练营第 1 期

区块链与物联网融合理论架构

CECBC

区块链

架构师训练营—大作业(一)

Geek_shu1988

「架构师训练营 4 期」 第一周 - 001002

凯迪

我从 HX 辞职了

看山

辞职 闲聊

关于食堂就餐卡系统设计

Geek_mewu4t

系统设计 食堂就餐卡

Caddy服务器使用方法

Rayan

运维 https 服务器 SSL证书

2021健康快乐

escray

2021

IPFS矿机软件系统开发|IPFS矿机APP开发

系统开发

真香系列!大牛耗时一年最佳总结,让你的app体验更丝滑!建议收藏

欢喜学安卓

android 程序员 面试 移动开发

工具之书:坚韧

lidaobing

文学少女 28天写作

《从C ++开始》第9版(1200页)

计算机与AI

c++

现成花火交易所系统软件APP开发案例

系统开发

架构师训练营—大作业(二)

Geek_shu1988

Hadoop 编程实战:HDFS API 编程样例

罗小龙

Java hadoop hdfs 编程

Lyft如何检测生产中安卓的内存泄漏_移动_Sergio De Simone_InfoQ精选文章