Swift代码优化技巧:减少指令数量提升执行效率
时间:2026-08-21 | 作者:星河游者 | 阅读:0从整体上看,Swfit生成的指令数量要多于OC。 因此,这里为大家梳理了一些Tips,帮助大家在编码时多留意一些细节,或许就能减少一点点指令数量。
虽然这可能只是微不足道的“蚊子腿”,但总归也是肉嘛。
Swift 减少指令数量的编码 Tips
避免 Swift 去重写 OC 的构造函数
- 会新增 objc_msgSendSuper2 调用父类函数指令;
- 会影响该函数的内联,在调用次数少时能减少很多指令;
- Swift 调用 super 若是父类显式定义的,还会新增不少隐式强制转换指令,详情可看:juejin.cn/post/743075…
多用临时变量,减少高成本调用
临时变量如果直接通过寄存器实现读写,在很多场景下都能减少指令。
例如,它可以减少函数调用次数,也能减少对实例属性的访问次数:
value.doA()
let a = value.getB()
let b = value?.getB()
->
guard let value = value else { return }
value.doA()
let a = value.getB()
let b = a
减少 lazy 属性使用
lazy 属性有锁操作,且需要额外地址存储实际数据。
在频次不敏感场景,可以使用计算属性替代。
闭包减少外部变量引用
闭包中应尽量减少对外部变量的引用。
比如,可以使用静态属性取代实例属性:
do () { self.key }
->
do () { AnyClass.key }
使用字面量方式初始化容器
在合适场景下,优先使用字面量方式初始化容器,写法更直接,也有助于减少指令。
var dic = [String : Any]()
dic["fileId"] = fileElementId
->
["fileId": fileElementId]
使用字符串插值替代字符串连接
字符串拼接时,可优先考虑使用字符串插值方式。
let _ = a + b
->
let _ = “(a)(b)”
减少分支
能直接返回结果时,就不要引入多余分支。 这样代码更简洁,也有利于减少指令。
If (a < 3) { return true } else { return false }->
return a < 3
当多个条件是同类判断时,也可以用更紧凑的方式表达:
return "iPhone9,2" == result || "iPhone9,4" == result || "iPhone10,2" == result || "iPhone10,5" == result
->
return ["iPhone9,2", "iPhone9,4", "iPhone10,2", "iPhone10,5"].contains(result)
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 宙斯浏览器如何开启强制HTTPS加密连接
- 时间:2026-08-23
-
- Hoppscotch集合管理API请求的完整创建与使用教程
- 时间:2026-08-23
-
- Hipstamatic如何开启照片推荐功能
- 时间:2026-08-23
-
- App Store 产品突然被下架,还是 4.3(a)?这次案例说明了什么
- 时间:2026-08-23
-
- 手机WPS怎么计算平均值操作方法
- 时间:2026-08-21
-
- 手机WPS表格删除多余行列的方法与操作步骤
- 时间:2026-08-21
-
- Deepseek能否为中国节省1万亿美元成本与影响分析
- 时间:2026-08-21
-
- DeepSeek Harness Agent安装配置教程详解
- 时间:2026-08-20
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
