iOS应用性能调优的25个建议和技巧(13)

    xiaoxiao2021-12-01  42

    13. 重用大开销对象

    一些objects的初始化很慢,比如NSDateFormatterNSCalendar。然而,你又不可避免地需要使用它们,比如从JSON或者XML中解析数据。

    想要避免使用这个对象的瓶颈你就需要重用他们,可以通过添加属性到你的class里或者创建静态变量来实现。

    注意如果你要选择第二种方法,对象会在你的app运行时一直存在于内存中,和单例(singleton)很相似。

    下面的代码说明了使用一个属性来延迟加载一个date formatter. 第一次调用时它会创建一个新的实例,以后的调用则将返回已经创建的实例:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    // in your .h or inside a class extension

    @property (nonatomic, strong) NSDateFormatter *formatter;

     

    // inside the implementation (.m)

    // When you need, just use self.formatter

    - (NSDateFormatter *)formatter {

        if(! _formatter) {

            _formatter = [[NSDateFormatter alloc] init];

            _formatter.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";// twitter date format

        }

        return_formatter;

    }

     

    还需要注意的是,其实设置一个NSDateFormatter的速度差不多是和创建新的一样慢的!所以如果你的app需要经常进行日期格式处理的话,你会从这个方法中得到不小的性能提升。

    转载请注明原文地址: https://ju.6miu.com/read-679467.html

    最新回复(0)