开源美图内部使用的 iOS 性能优化/调试辅助工具及交流

2019-04-23 12:43:01 +08:00
 euan1022

我们开源了 iOS 下的性能优化 /调试辅助工具 MTHawkeye,https://juejin.im/post/5cbd7be9f265da03555c7e21

想交流下其他 iOS 开发者的一些习惯

先说我们之前的情况

不知道大家平时遇到的情况大概是怎样,平时一般会通过什么方式来改善。

11229 次点击
所在节点    iDev
11 条回复
epkT6QJ3RSaz6AnJ
2019-04-23 13:20:45 +08:00
我一般遇到的性能问题,主要集中在长列表写法问题。解决的化,要不 cr 阶段严格点,要不自己维护一套组件库。依赖外部工具倒是可以能有个提醒作用,但是也不能从根本上解决问题。
euan1022
2019-04-23 13:38:33 +08:00
@epkT6QJ3RSaz6AnJ 我们团队协作的问题会多些,有些组件可能在不同团队维护。比较依赖自动化阶段的监控
eric1202
2019-04-23 13:48:59 +08:00
Instrument 没有遇到明显性能问题都不会用
euan1022
2019-04-23 14:32:34 +08:00
@eric1202 那是主要跟进线上 APM 的性能反馈吗
epkT6QJ3RSaz6AnJ
2019-04-23 14:38:42 +08:00
@eric1202 除非能像前端一样有 e2e 测试保证,一般很少人去自己专门看自己性能监控,还有一些工具能监控线上某些重点页面的耗时,能及时上报看大盘优化。
autotesting
2019-04-23 14:39:28 +08:00
@euan1022 自动化阶段的监控主要监控哪些指标呢?能否简单介绍一下实现流程吗?
euan1022
2019-04-23 15:59:39 +08:00
@autotesting 我们目前监控的主要是内存使用和耗时方面。基本的实现都是依靠 hook 来跟踪,细节比较多,目前还没整理完整的实现文档,有兴趣可以直接看源码哈。

内存分了两个模块,一个主要监测能捕获到的一些未释放对象;另一块的话类同 Instrument 的 Allocations,记录了完整的内存占用,在自动化测试内存值异常的时候可以直接用这些数据来快速排查问题。

耗时的话,主要监控的是启动、页面打开和一些关键操控流程的耗时。防止在开发过程中有开发新加一些耗时的方法到主线程。 可以参考下开发阶段的 [使用文档]( https://github.com/meitu/MTHawkeye/blob/develop/doc/time-consuming/ui-time-profiler-cn.md),自动化阶段的话基本就只取数据。
euan1022
2019-04-23 16:00:39 +08:00
@autotesting 其他的一些指标大多比较通用,第三方 APM 有的基本也都会覆盖
yichengfzu
2019-04-23 19:54:49 +08:00
内存泄漏主动提示很实用~
eric1202
2019-04-24 08:53:43 +08:00
@euan1022 是的
epkT6QJ3RSaz6AnJ
2019-04-25 14:11:32 +08:00
自动反解 dsym 错误日志也实用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/557856

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX