![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
性能优化
文章平均质量分 95
Big Skipper
The Chosen One.
展开
-
ANR 优化实践系列4 Barrier导致主线程假死
概述前文,我们通过线上案例对影响 ANR 问题的六大场景进行剖析,这几类场景基本覆盖了线上大部分问题。同时我们选取了较多 NativePollOnce 场景的案例,便于大家更好理解,ANR 时看到的 NativePollOnce 场景的问题,并不是导致 ANR 的根本问题。下面要介绍的这类问题,Trace 现场依然是 NativePollOnce 信息,但与前几类问题不同的是,这类问题真的发生在 NativePollOnce 场景,接下来就看看到底是什么原因导致的。主线程 Trace 堆栈:分析思原创 2021-07-06 11:15:31 · 595 阅读 · 2 评论 -
ANR 优化实践系列3 实例剖析集锦
概述在前文,我们用了较多的篇幅介绍了ANR 优化实践系列1 设计原理及影响因素,并根据不同场景进行了分类,如:当前消息严重耗时,历史消息耗时严重,业务异常密集执行,进程内资源抢占,进程间资源抢占等场景。为了应对系统监控能力不足以及应用侧获取信息受限的情况,我们在应用侧实现了一套消息调度监控工具,重点监控主线程的 “过去,现在和将来”,同时结合相关日志对 ANR 问题的分析思路进行了总结。为了便于大家更好的理解上述知识,接下来我们将结合工作中遇到的一些比较有代表性的问题,并按照前文归因分类,由浅入深进行实原创 2021-07-05 16:22:59 · 708 阅读 · 0 评论 -
ANR 优化实践系列2 监控工具与分析思路
概述在前文,我们对 ANR 优化实践系列1 设计原理及影响因素 进行了介绍,并对影响 ANR 的不同场景进行归类。但是依靠现有的系统日志,不足以完成复杂场景的问题归因,而且有些信息从应用侧无法获取,这就导致很多线上问题更加棘手;因此我们在应用侧探索了新的监控能力,以弥补信息获取不足的短板。同时对日常分析过程中用到日志信息和分析思路进行总结,以帮忙大家更好的掌握分析技巧,下面我们就来看看相关实现。Raster 监控工具俗话说:“工欲善其事,必先利其器”,日常分析 ANR 问题也是如此,一个好的监控工具不原创 2021-07-04 19:53:18 · 753 阅读 · 1 评论 -
ANR 优化实践系列1 设计原理及影响因素
概述ANR 问题,对于从事 Android 开发的同学来说并不陌生,日常开发中,经常会遇到应用乃至系统层面引起的各种问题,很多时候因为不了解其运行原理,在面对该类问题时可能会一头雾水。与此同时,因为现有监控能力不足或获取信息有限,使得这类问题如同镜中花,水中月,让我们在追求真理的道路上举步维艰。如下图:工作中在帮助大家分析问题时,发现有不少同学问到,在哪里可以更加系统的学习?于是本人抱着“授人以鱼,不如授人以渔”的态度,结合个人理解和工作实践,接下来将从设计原理、影响要素、工具建设、分析思路,案例实战原创 2021-07-02 17:32:39 · 376 阅读 · 1 评论