同程APP启动过程时长统计及优化方案

同程APP启动过程时长统计及优化方案:

APP启动到首页加载完:1.64s - 1.74s

一、AppDelegate各阶段时长统计

表1:

启动过程 耗时 优化方案 备注
replaceLaunchImage 80-105ms之间 延后执行 启动只执行一次
bugly初始化 5-8ms左右 可忽略
beeHive初始化 2-3ms左右 可忽略
通用模块初始化 140- 180ms之间 具体参考表2
APP首页创建 343 - 400ms之间 @张友凯 @陈冬
微信初始化 3 - 28ms 延后执行

表2:

过程 耗时 优化方案 备注
设置最优域名&gateway 34ms左右 延后操作 @郭东洋
trace配置 12-15ms 延后操作 @郭东洋
hybrid环境配置 40-70ms 延后操作 @朱尧才 确认 @郭东洋 修改
注册音频后台服务 5ms 延后操作 @郭东洋
读取广告符 5ms 延后操作 @郭东洋
页面加载耗时监听 11ms 延后操作 @朱尧才 @郭东洋
动态化库初始化 30-40ms 是否可以异步线程执行 @陈冬确认
动态更新配置DUCOnfig 8 - 10ms左右 暂不处理 热修复逻辑需要靠前
其他 都小于3ms 可忽略

二、首页加载时长统计

1、IndexContainerViewController

过程 耗时 优化方案 备注
viewDidLoad(needFirstLoad) 193ms左右 @张友凯 @陈冬
viewWillAppear 小于1ms 忽略
viewDidAppear 小于1ms 忽略

2、IndexMainViewController

过程 耗时 优化方案 备注
loadView 80 - 100 ms @张友凯 @陈冬
loadDefaultData 60 - 80 ms @张友凯 @陈冬
createBaseView 14ms左右 @张友凯 @陈冬
viewDidLoad 80 - 85ms @张友凯 @陈冬
viewWillAppear 13ms左右 @张友凯 @陈冬
viewDidAppear 不到1ms 忽略

Load方法耗时统计

主工程

类/分类 优化方案 备注
TCTCacheManager+TCTDeviceIdCompatible 可以删除@郭东洋 已和@方爱林确认
TCTFileStorageObject 可以删除@郭东洋 已和@方爱林确认
TCTLoadManage 放到initialize处理 @郭东洋
TCTWidgetBridgeOC 修改调用方式 @方爱林 确认
TCTURLNotificationHandler 修改初始化注册方式 @郭东洋 修改
TCTURLRouteSupport 首页加载完成后初始化 @郭东洋 修改
TCTRequestAlertCustomView 首页加载完成后初始化 @郭东洋 修改
UIViewController(TCTTrendUseURL) 可以删除 未做任何处理 @方爱林 @郭东洋确认
TCTTrendImageDownloadRelyObject 暂不处理 影响较大 @方爱林
TCTRequestObject(TCTNetGateway) 暂不处理 影响较大,处理网关
UIViewController(PO_RouteURL) 暂不处理 兼容路由表注册,不能删除

私有组件

组件 类/分类 优化方案 备注
TCTMixtureProject TCTImagePickerManager+TCTTopShadow 放到initialize处理 @方爱林
TCTQRHistory TCTQRScanViewController+QRHistory 放到initialize处理 @方爱林
TCTViewLoadTimeDetect UIViewController+LoadTimeDetect 去掉组件 kTCTViewLoadDetectNotification暂无处理 @朱尧才
WelcomeViewController WelcomeViewController 放到initialize处理 业务逻辑 @Tracy-jun
TCTMore SettingViewController+CacheClear 放到initialize处理 @方爱林
eLongFramework NSDate+Helper 暂不处理 影响较大
eLongFramework NSDate+DateTools 暂不处理 影响较大
TCTAnalyics UIViewController+TCTUMSAgent 暂不处理 页面数据埋点
TCTBehaviorTrackCore TCTUMSAgent+BehaviorTrack 暂不处理 hybrid监控
TCTBehaviorTrackCore TCTBehaviorTrackHybridBridge 暂不处理 hybrid监控
TCTCategory UITableView+FDIndexPathHeightCache 暂不处理 影响较大
TCTCategory UIViewController+TCTExtendedLayout 暂不处理 影响较大 @方爱林
TCTHTTPDNS SDWebImageConvertHTTPS 暂不处理 支持https @方爱林
TCTMore UNUserNotificationCenter+TCTHack 暂不处理 修复crash
TCTNavHookPop UINavigationController+HookPop 暂不处理 影响较大
TCTNavigationBar UINavigationBar+TCTTransparent 暂不处理 影响较大
TCTNavigationBar UIViewController+TCTNavigationBarTransparent 暂不处理 影响较大
TCTravelUICategory UINavigationItem+_Swizzle 暂不处理 修改导航条按钮颜色影响较大
TCTrend UIViewController+ClientCostTimeLog 暂不处理 统计页面耗时
TCTUIDeviceIdentifier UIDeviceHardware+swizzle 暂不处理 影响较大
TCTURLRoute NSURL+URLWithStringEncode 暂不处理 影响较大
TCTURLRoute3 UIViewController+TCTBridgeWeb 暂不处理 影响较大

第三方

暂不处理

组件 类/分类
AnimatedGIFImageSerialization AnimatedGIFImageSerialization
BSBacktraceLogger BSBacktraceLogger
React RCTBridgeModule
TTTAttributedLabel TTTAttributedLabel
UITextView+Placeholder UITextView+Placeholder

你可能感兴趣的:(同程APP启动过程时长统计及优化方案)