如许修改之后大年夜图的滚到加载时光削减到了40ms阁下
固然削减了一半的时光,不过,40ms的时光┞氛样比较长的,下面会持续进行优化。
筹划2
膳绫擎的筹划进行了图片的紧缩,时光的消费┞氛样因为 [UIImage drawInRect:blendMode:alpha] 函数的调用,所以有没有一种更好的筹划呢?谜底是肯定的,可以把传给UITextView的image紧缩成一个很小的,(这一步也可以不必,传递一个空的UIImageView对象即可,这里设置图片的重要原因是图片区域须要一个编辑的光标),然后在 UITextView 所对应的图片区域添加一个UIImageView,在UIImageView中设置原始的图片即可,这种筹划会比筹划1的效不雅好很多。
筹划二几个修改点:
1.设置NSTextAttachment的image为空的UIImage对象
- //....
- NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
- CGRect rect = CGRectZero;
- rect.size.width = showImageWidth;
- rect.size.height = showImageHeight;
- textAttachment.bounds = rect;
- textAttachment.image = [UIImage new];
- NSAttributedString *attachmentString = [NSAttributedString attributedStringWithAttachment:textAttachment];
- //....
2.Cell添加ImageView显示Image
问题分析
- [self.imageContentView mas_remakeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self).offset(_imageModel.imageFrame.origin.x);
- make.top.equalTo(self).offset(_imageModel.imageFrame.origin.y);
- make.height.equalTo(@(_imageModel.imageFrame.size.height));
- make.width.equalTo(@(_imageModel.imageFrame.size.width));
- }];
下面是应用筹划2优化之后的分析图
图中可以看到 cellForRowAtIndexPath 办法总共占用了2ms的时光,大年夜分析的客栈中可以看到 UITextView setAttributedText: 办法才占用了1ms的时光,所以这个晋升是很明显的,因为传递了一个空的UIImageView对象,不消履行 [UIImage drawInRect:blendMode:alpha] 办法,应用了UIImageView直接设置Image的方法几乎不会占用时光,所以客栈中看不到 [UIImageView setImage:] 办法调用的时光。
总结
Instrument是一个很好对象,你用它可以很便利的帮我们定位到机能问题,问题找到了,那么也就很轻易找到解决筹划了。
【编辑推荐】
- 代码处理iOS的反正屏扭转
- 浅谈iOS Crash(二)
- iOS应用UITableView实现的富文本编辑器
- iOS Public Beta 5值得存眷的7个变更
- iOS 11更新第6个开辟者测试版,变更最大年夜的竟然是App Store标识
推荐阅读
【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 本文介绍了一些可以用来监控收集应用情况的Linux敕令行对象。这些对象可以监控经由过程收集接口传输的数据>>>详细阅读
本文标题:IOS使用Instrument-Time Profiler工具分析和优化性能问题
地址:http://www.17bianji.com/lsqh/36827.html
1/2 1