我们开源了 iOS 下的性能优化 /调试辅助工具 MTHawkeye,https://juejin.im/post/5cbd7be9f265da03555c7e21
想交流下其他 iOS 开发者的一些习惯
先说我们之前的情况
不知道大家平时遇到的情况大概是怎样,平时一般会通过什么方式来改善。
1
epkT6QJ3RSaz6AnJ 2019-04-23 13:20:45 +08:00
我一般遇到的性能问题,主要集中在长列表写法问题。解决的化,要不 cr 阶段严格点,要不自己维护一套组件库。依赖外部工具倒是可以能有个提醒作用,但是也不能从根本上解决问题。
|
2
euan1022 OP @epkT6QJ3RSaz6AnJ 我们团队协作的问题会多些,有些组件可能在不同团队维护。比较依赖自动化阶段的监控
|
3
eric1202 2019-04-23 13:48:59 +08:00
Instrument 没有遇到明显性能问题都不会用
|
5
epkT6QJ3RSaz6AnJ 2019-04-23 14:38:42 +08:00 1
@eric1202 除非能像前端一样有 e2e 测试保证,一般很少人去自己专门看自己性能监控,还有一些工具能监控线上某些重点页面的耗时,能及时上报看大盘优化。
|
6
autotesting 2019-04-23 14:39:28 +08:00
@euan1022 自动化阶段的监控主要监控哪些指标呢?能否简单介绍一下实现流程吗?
|
7
euan1022 OP @autotesting 我们目前监控的主要是内存使用和耗时方面。基本的实现都是依靠 hook 来跟踪,细节比较多,目前还没整理完整的实现文档,有兴趣可以直接看源码哈。
内存分了两个模块,一个主要监测能捕获到的一些未释放对象;另一块的话类同 Instrument 的 Allocations,记录了完整的内存占用,在自动化测试内存值异常的时候可以直接用这些数据来快速排查问题。 耗时的话,主要监控的是启动、页面打开和一些关键操控流程的耗时。防止在开发过程中有开发新加一些耗时的方法到主线程。 可以参考下开发阶段的 [使用文档]( https://github.com/meitu/MTHawkeye/blob/develop/doc/time-consuming/ui-time-profiler-cn.md),自动化阶段的话基本就只取数据。 |
8
euan1022 OP @autotesting 其他的一些指标大多比较通用,第三方 APM 有的基本也都会覆盖
|
9
yichengfzu 2019-04-23 19:54:49 +08:00 via iPhone
内存泄漏主动提示很实用~
|
11
epkT6QJ3RSaz6AnJ 2019-04-25 14:11:32 +08:00
自动反解 dsym 错误日志也实用
|