赞
踩
答案是只有11%,惊讶不。原因就是在在0-4.5和4.5到9这两个周期内那些空闲的时间,消息都有可能被消费掉!这种情况我们就监控不到了。想想,你再想想,真的是佩服腾讯工程师严谨的工程作风。
很是精彩,ANR如何产生,系统源码实现,找监控方案直接一套组合拳,可见功底深厚大佬就是大佬。
其中,通过监听SIGQUIT信号并过滤误报最终监控ANR的方案,也是当前主流的正规方案,为什么是加一个正规的修饰词呢,想想ANRWatchDog那种多不正经就知道这个有多正规。
这里面,几个重要的点我列下
这就是微信团队出的关于Android卡顿和ANR的两篇经典文章,建议大家自信研读,卷起来!
2022年12月份,钉钉团队发表的ANR 问题的解决方案系列文章。
作为ANR问题不可避免的两个问题
监控ANR 的方案思路与今日头条基本一致,采集主线程的调度信息做记录。其中也有一些不同,把主线程调度的分类,以下五类
可见,其在主线程任务调度的方面监控的更加具体,今日头条的Raster工具从博文看只是对主线程的消息调度进行了监控,我们在结合微信团队的卡顿监控方案,其实可以更全面的对主线程任务进行调度,这一点很知道借鉴学习。
此外,博文里还提出有些手机厂商在应用进程会进入冻结状态,APP 回到前台后才继续执行,冻结的过程里会导致任务耗时过长,需要单独记录,不过这一点今日头条的方案,里能够通过CPUTime 和WallTime 识别出来。
其他方面,ANRCanery 采集也会采集过去当下和等待的任务调度,也对会采集的消息进行聚合处理。堆栈采集上,也是采用了时间对齐方案对堆栈进行采样。
2021年6月份, 《关于闲鱼的ANR治理,我有几条心得》
文章短小精悍
《手淘 Android 帧率采集与监控详解》
手淘团队2022年1月份,提出了Android [滑动帧率]思路并给出了比较详细的监控方案。
2022年8月份 LooperMonitor
《Android 卡顿与 ANR 的分析实践》
值得注意的点:
Looper
中新增了一个 Observer
的接口,采用元反射的方式,减少了通过Looper Printer 拼接Message带来的性能损耗。2021年9月份得物团队发表了ANR监控文章
《得物技术 | 得物App ANR监控平台设计》
java层面直接通过thread.getStackTrace()
获取堆栈信息,是有一定损耗的,对此我们看到大家常规的做法是控制采集的频率,shoppe团队提到的由协程的非堵塞式挂起实现高效的线程堆栈采集,对此我是持怀疑态度
业内确实对高效采集堆栈方向有探索,给出了高效的抓栈方案,妥妥的黑科技看到了比较优秀的两篇供大家参考。
纵观各厂在卡顿和ANR 方面做的探索和方案,我们可以看出,思路上都有重合,在细节方面做了很多针对自身业务和实际情况做的针对性的优化和个性化的开发。总的来说逃不出以下几个步骤
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)**
[外链图片转存中…(img-MSrqX49N-1712754713913)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。