文档管理中心

DevEco Studio测试之DFX

过去30年,华为踩过无数的坑。现在华为将踩过的坑总结成了经验,固化到产品开发中,形成了一套独具特色的开发测试能力——DFX(Design for eXcellent)。


2-2.png


DFX主要是诊断APP常见的内存越界,内存泄漏,卡死/卡顿这三项问题,能帮助广大开发者提前消除疑难BUG。


内存越界

内存越界使用,容易产生有着极大不确定性的问题。这种问题不易重现,甚至有时不会对程序的运行产生影响,所以容易被忽视。但这个问题一旦爆发,将造成致命性的打击和破坏。


要想解决内存访问越界,得进行仔细的代码走查、单步跟踪、观察变量,并在调试环境的帮助下对变量进行写入跟踪。此外,还值得注意的是,有时出现错误的地方,往往不是真正内存越界的地方。要想快捷高效地解决这个问题,可以使用DevEco Studio的DFX测试,通过内存标记和调用追踪,即可精准的定位到越界代码行。


内存泄漏


虽然垃圾回收器会帮忙清理大部分无用的内存空间,可对于在引用和逻辑上不再用到的对象,垃圾回收器不会回收。这部分内存空间使用后没被回收,会导致内存泄漏。虽然一次内存泄露的危害可以忽略,但内存泄露不断地堆积,迟早会占光所有内存。


内存泄漏按照发生的方式分类,可分为:1.常发性内存泄漏;2.偶发性内存泄漏;3.一次性内存泄漏;4.隐式内存泄漏。其中隐式内存泄漏是最难被检测出且危害性最大的。


DevEco Studio的DFX测试采用全栈部署,从识别问题到自动开启调用链,再到问题定位,最后站式定位内存泄漏的代码行,快速帮助开发者找到bug所在。


卡顿/卡死


手机APP卡死/卡顿,需要用户强制关闭、重启,不仅浪费手机电量,还白白浪费了流量,易造成用户体验不佳、用户流失。


此外,卡死/卡顿频发的原因一般很难排查,一方面链路太长,寻找原因无从下手;另一方面日志不全或监控不足,导致发现问题不及时。


好在DevEco Studio的DFX测试采用多探针联合检测判决,覆盖系统各个层次,多维全面监控冻屏问题;并提供完整的卡死,崩溃调用栈日志,精准检测引发卡死/卡顿的原因所在。


看到这里,是不是对华为专项的DFX测试产生了强烈的兴趣,欢迎点击DFX测试进行体验。







点赞
收藏
回复
8
分享
举报
浏览4247 编辑于2019-10-21 03:06未知归属地
全部评论
最多点赞
最新发布
最早发布
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。