深入浅出-ios程序性能优化

深入浅出-ios程序性能优化

ID:8848828

大小:82.37 KB

页数:4页

时间:2018-04-09

深入浅出-ios程序性能优化_第1页
深入浅出-ios程序性能优化_第2页
深入浅出-ios程序性能优化_第3页
深入浅出-ios程序性能优化_第4页
资源描述:

《深入浅出-ios程序性能优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、网址:edu.51CTO.com深入浅出-iOS程序性能优化iOS应用是非常注重用户体验的,不光是要求界面设计合理美观,也要求各种UI的反应灵敏,我相信大家对那种一拖就卡卡卡的TableView应用没什么好印象。还记得12306么,那个速度,相信大家都受不了。为了提高iOS的运行速度,下面我将抛砖引玉介绍一些我实践过的用来提供iOS程序运行效率的方法,与大家分享,希望能得到更多的反馈和建议。1,计算代码运行时间:相信数据,不要太相信感觉。不过要注意模拟器和真机的差异。最简单的工具就是NSDate,但精度不是太好。1.NSDate

2、* tmpStartData = [[NSDate date] retain]; 2.//You code here... 3.double deltaTime = [[NSDate date] timeIntervalSinceDate:tmpStartData]; 4.NSLog(@">>>>>>>>>>cost time = %f", deltaTime); 或者将运行代码放到如下方法的block参数中,然后返回所运行的时间:1.#import   // for mach_absolut

3、e_time() and friends   2.   3.CGFloat BNRTimeBlock (void (^block)(void)) {   4.    mach_timebase_info_data_t info;   5.    if (mach_timebase_info(&info) != KERN_SUCCESS) return -1.0;   6.   7.    uint64_t start = mach_absolute_time ();   8.    block ();   9.    uint6

4、4_t end = mach_absolute_time ();   10.    uint64_t elapsed = end - start;   11.   12.    uint64_t nanos = elapsed * info.numer / info.denom;   13.    return (CGFloat)nanos / NSEC_PER_SEC;   14.}  2,善用性能分析工具。XCode自带了很多强大的分析工具,包括静态Analyze工具,以及运行时Profile工具。网址:edu.51CTO.

5、com3,关于图片优先使用[UIImageimageNamed:@""];与[[UIImagealloc] initWithContentsOfFile:]和 [UIImagealloc[initWithData:]]相比,[UIImageimageNamed:]有着更好的效率,这是因为iOS会自带cache通过 [UIImageimageNamed:]载入的图像,但该方法有一个缺点,那就是只能载入应用程序bundle中的图像,像网络下载的图像就无能无力了。我习惯的做法是自定义一个ImageCache类,自己来cache图像。尽

6、量不要使用全屏大小的背景图片;使用gradient 图片来取代硬编码的gradient;gradient图片应当尽可能窄,然后将之拉伸运用到实际场合中去。4,对于结构复杂的View,使用drawRect自绘而不是从nib中载入。5,对于TableView,重用cell;减少cell初始化的工作量,延迟装载;定制复杂cell时,使用drawRect自绘;Cache尽可能多的东西,包括cell高度;尽可能让cell不透明;避免使用图像特性,比如gradients。6,在线程中使用autoreleasepool。7,将一些不太重要的任

7、务放在idle时运行。1.- (void)idleNotificationMethod { 2.    // do something here 3.} 4. 5.- (void)registerForIdleNotification  6.{ 7.    [[NSNotificationCenter defaultCenter] addObserver:self 8.        selector:@selector(idleNotificationMethod) 网址:edu.51CTO.com1.        name

8、:@"IdleNotification" 2.        object:nil]; 3.    NSNotification *notification = [NSNotification 4.        notificationWithName:@"I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。