feat: socket 层错误抛出 SIGPIPE 导致 crash 问题解析

This commit is contained in:
liubinpeng
2021-04-06 11:33:54 +08:00
parent 0f3bdd564b
commit f509fe4aa7
5 changed files with 78 additions and 1 deletions

View File

@@ -4,7 +4,7 @@
App 的性能问题是影响用户体验的重要因素之一。性能问题主要包含Crash、网络请求错误或者超时、UI 响应速度慢、主线程卡顿、CPU 和内存使用率高、耗电量大等等。大多数的问题原因在于开发者错误地使用了线程锁、系统函数、编程规范问题、数据结构等等。解决问题的关键在于尽早的发现和定位问题。
本篇文章着重总结了 APM 的原因以及如何收集数据。APM 数据收集后结合数据上报机制,按照一定策略上传数据到服务端。服务端消费这些信息并产出报告。请结合[姊妹篇](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter1%20-%20iOS/1.80.md) 总结了如何打造一款灵活可配置、功能强大的数据上报组件。
xf本篇文章着重总结了 APM 的原因以及如何收集数据。APM 数据收集后结合数据上报机制,按照一定策略上传数据到服务端。服务端消费这些信息并产出报告。请结合[姊妹篇](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter1%20-%20iOS/1.80.md) 总结了如何打造一款灵活可配置、功能强大的数据上报组件。

15
Chapter1 - iOS/1.94.md Normal file
View File

@@ -0,0 +1,15 @@
# APM
## 启动时间的监控和治理
- https://everettjf.github.io/2018/08/24/most-simple-task-queue-model/
- https://github.com/izhangxb/GMTC/blob/master/全球移动技术大会GMTC%202017%20PPT/手淘iOS性能优化探索%20.pdf
- https://mp.weixin.qq.com/s/Kf3EbDIUuf0aWVT-UCEmbA
- http://yulingtianxia.com/blog/2016/10/30/Optimizing-App-Startup-Time/
- https://www.jianshu.com/p/c14987eee107
- https://time.geekbang.org/column/article/85331
- https://punmy.cn/2018/06/18/15278496835424.html
- https://www.shangmayuan.com/a/a14fb820d1bc4457b018bf7b.html
> 我知道可以借助三方工具类BSBacktraceLogger获取主线程调用栈[BSBacktraceLogger bs_backtraceOfMainThread];然后定时0.01秒计算各方法的调用耗时。但是具体不知道该怎么计算啊,望老师指点!
作者回复: 连续相同的堆栈,将其时间相加就是那个堆栈方法的耗时。