不同于 Android 系统中的卡死(ANR)问题,目前业界对 iOS 系统中 App 发生的卡死崩溃问题并无成熟的解决方案 , 主要原因是:
卡死崩溃背景介绍什么是 watchdog
如果某一天我们的 App 在启动时卡住大概 20s 然后崩溃之后,从设备中导出的系统崩溃日志很可能是下面这种格式:
ExceptionType:EXC_CRASH(SIGKILL)
ExceptionCodes:0x0000000000000000,0x0000000000000000
ExceptionNote:EXC_CORPSE_NOTIFY
TerminationReason:NamespaceASSERTIOND,Code0x8badf00d
TriggeredbyThread:0
下面就其中最重要的前 4 行信息逐一解释:
SIGKILL:BSD 层的信号,表示进程被系统终止,而且这个信号不能被阻塞、处理和忽略 。这时可以查看 Termination Reason 字段了解终止的原因 。
在iOS平台上,App如果在启动、退出或者响应系统事件时因为耗时过长触发系统保护机制,最终导致进程被强制结束的这种异常定义为watchdog类型的崩溃 。
所谓的 watchdog 崩溃也就是
【iOS 稳定性问题治理:卡死崩溃监控原理及最佳实践】为什么要监控卡死崩溃
大家都知道在客户端研发中,因为会阻断用户的正常使用,闪退已经是最严重的 bug,会直接影响留存,收入等各项最核心的业务指标 。之前大家重点关注的都是诸如 unrecognized selector、EXC_BAD_ACCESS 等可以在 App 进程内被捕获的崩溃(下文中称之为普通崩溃),但是
值得注意的是,火山引擎近期针对中小企业及个人开发者推出了增长赋能计划——「火种计划」 。符合条件的企业/开发者仅需于官网注册并提交相应申请 , 即可免费使用应用性能监控这一平台,有需要的同学抓紧申请吧~
详情可点击传送门:https://zjsms.com/ed8ktbb/
加入我们
本技术方案由字节跳动 APM 中台设计研发,欢迎对我们团队感兴趣的同学加入 。
字节跳动 APM 中台目前致力于提升整个集团内全系产品的性能和稳定性表现,技术栈覆盖 iOS/Android/Flutter/Web/Hybrid/PC/游戏/小程序等,工作内容包括但不限于线上监控,线上运维 , 深度优化,线下防劣化等 。长期期望为业界输出更多更有建设性的问题发现和深度优化手段 。
欢迎各位有识之士加入我们,一起为了“更快,更稳 , 更省 , 更有品质”的极致目标携手前行 。我们在北京,深圳两地均有招聘需求 , 简历投递邮箱:tech@bytedance.com ;邮件标题:姓名 – 工作年限 – APM 中台 – 技术栈方向(如 iOS/Android/Web/后端) 。
参考文献
[1] https://developer.apple.com/documentation/xcode/diagnosing_issues_using_crash_reports_and_device_logs/identifying_the_cause_of_common_crashes/addressing_watchdog_terminations
[2] https://geek-is-stupid.github.io/2018-10-15-0x8badf00d-ate-bad-food/
[3] https://honchwong.github.io/2018/05/05/Crash%E5%88%86%E6%9E%90%E7%B3%BB%E5%88%97%E4%B9%8B%E4%B8%80%EF%BC%9ALaunchDaemons%E4%B8%AD%E7%9A%84ReportCrash/
[4] https://zhuanlan.zhihu.com/p/37652140
[5] http://openfibers.github.io/blog/2016/10/22/deadlock-caused-by-dispatch-once/
以上就是朝夕生活(www.30zx.com)关于“iOS 稳定性问题治理:卡死崩溃监控原理及最佳实践”的详细内容,希望对大家有所帮助!
猜你喜欢
- 大明:教你解决电脑关机卡慢详细教程,简单有效值得收藏
- PPlive PPTV客户端批量刷会员漏洞
- 对于试玩,你了解多少?是不是经常没有任务做?新手的你,看过来
- app store 怎么上架APP到苹果应用商店
- 用过这么多电念头,你知道三相异步电念头铭牌的含意吗?
- 猫吃什么猫粮比较好?国产猫粮排行榜前十名
- 杨震:美职足规则介绍 再分享一组串关
- 这个美国的“山寨”足球联赛,没有一支球队也敢开赛
- 什么牌子卫生巾好用?