世界互联网大会|iOS-代码细节优化四( 二 )

全量代码打包更有利于编译器做更多优化 。
3.使用Slice共享内存优化性能 。 使用Array/String时 , 可以使用Slice切片获取一部分数据 。 Slice保存对原始Array/String的引用共享内存数据 , 不需要重新分配空间进行存储 。
4.当protocol仅限制为class使用时 , 继承AnyObject协议可以使编译器不需要考虑值类型实现 , 提高运行时性能 。
5.使用lazy延时初始化属性(lazy属性不能保证线程安全) 。
6.private let属性会增加每个class对象的内存大小 。 同时会增加包大小 , 因为需要为属性生成相关的信息 。 可以考虑使用文件级private let申明或static常量代替 。
7.某些场景需要使用didSet/willSet属性检查器监控属性变化 , 做一些额外的计算 。 但是由于didSet/willSet并不会检查新/旧值是否相同 , 可以考虑添加新/旧值判断 , 只有当值真的改变时才进行运算提高性能 。
还有很多很多细节这里就不一一列举了 。 处了影响性能和基本的一些细节 , 多数还是要团队间做好配合 。