内容简介:APP本地图片较多,每次查找图片都要消耗24ms左右,导致点击优化前优化后把每个
APP本地图片较多,每次查找图片都要消耗24ms左右,导致点击 tabbar 的时候都要等上七八百ms,有的页面甚至要1s,用 instruments 中的 Time Profiler 工具查找之后发现页面 viewdidload 大部分的时间都花在了查找图片上,所以这次针对查找图片做了初步优化。
优化前:
优化前 tabbar 的点击事件着实比较尴尬,点击的时候卡顿非常明显。
优化后(顺带把didfinishlaunching优化了一下):
优化后把每个 tabbar 对应的 viewController 的初始化速度控制在了100ms之内,点击之后没有明显的卡顿,基本达到预期。
核心代码:
创建一个串行队列,然后异步开启子线程进行耗时操作,最后回到主线程异步更新UI。
+ (void)childThreadOperation:(childThreadOperation)chileThreadOperation mainThreadOperation:(mainThreadOperation)mainThreadOperation{
dispatch_queue_t queue = dispatch_queue_create("optimizeImageQueue", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
if(chileThreadOperation){
chileThreadOperation();
}
dispatch_async(dispatch_get_main_queue(), ^{
if(mainThreadOperation){
mainThreadOperation();
}
});
});
}
复制代码
附上 github 地址: TFQImageOptimization 使用方法可以参考 viewController 中的伪代码
Time Profiler 使用教程请参考我在简书的文章: iOS 使用Instruments的Time Profiler工具进行app加载时间分析
加载图片请参考我在博客园的文章: 如何获得images.xcassets 中图片的路径?
同步异步问题请参考我在掘金的文章: iOS线程、同步异步、串行并行队列
以上所述就是小编给大家介绍的《APP查找图片优化》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- PHP有序表查找之二分查找(折半查找)算法示例
- 查找--插值查找(Java)
- 查找算法(一):查找
- 二叉查找树(查找、插入、删除)——C语言
- 数据结构和算法(Golang实现)(27)查找算法-二叉查找树
- 七大查找算法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
500 Lines or Less
Amy Brown、Michael DiBernardo / 2016-6-28 / USD 35.00
This book provides you with the chance to study how 26 experienced programmers think when they are building something new. The programs you will read about in this book were all written from scratch t......一起来看看 《500 Lines or Less》 这本书的介绍吧!