
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
程序员在监控软件运行状态以及维护的时候会用到许多的监控工具,而今天我们就通过案例分析来了解一下,软件运维消息聚合方法都有哪些。
多消息聚合:
该场景主要用于主线程连续调度多个消息,并且每个消息耗时都很少的情况下,将这些消息耗时累加,直到这些消息累计耗时超过设置的阈值,则汇总并生成一条记录,并在这条记录中标明本次聚合总共调度了多少个消息。
消息聚合拆分:
针对上面多消息聚合策略,会存在一些特殊情况,例如在将多个消息进行累计统计过程中,如果前N次消息调度结束后,累计耗时都没有超过阈值,但是调度完下一个消息之后,发现累计耗时超过阈值,并且还明显超出,如设置阈值是300ms,但是前N个消息累计200ms,加上本次消息累计耗时达到了900ms,那么这种情况,我们明显知道是后一次消息耗时严重,因此需要将本次消息单独记录,并标记其耗时和相关信息,同时将之前N次消息调度耗时和消息数聚合在一起并单独记录,这种场景相当于一次生成2条记录。
关键消息聚合:
除了上面单次耗时严重的消息需要拆分并单独记录之外,还有一类消息也需要我们单独标记,以达到更好的识别,那就是可能会引起ANR的应用组件,如Activity,Service,Receiver,Provider等等。为了监控这几种组件的执行过程,我们需要对ActivityThread.H的消息调度进行监控,当发现上面这些组件有关的消息在执行时,不管其耗时多少,都对其进行单独记录,并将之前监控的一个或多个消息也保存为一条记录。
IDLE场景聚合:
熟悉消息队列的同学都知道,主线程是基于消息队列的方式进行调度,在每次消息调度完成之后都会从消息队列读取下一个待调度的消息,如果消息队列没有消息,或者下一个消息没有到设定的调度时间,并且也没有IDLE消息等待调度,那么主线程将会进入IDLE状态。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。