如果變數在初始化后從不變異,是否有var原因會影響性能?有些情況下寫起來更簡單
var value = 0
if conditions {
value = 1
}
比
let value: Int
if conditions {
value = 1
} else {
value = 0
}
可以忽略不計嗎?
uj5u.com熱心網友回復:
您可以使用編譯器資源管理器(例如 Godbolt)自行檢查。
從這兩種方法編譯的程式集本質上是相同的,跳轉只是在不同的地方,所以應該沒有任何性能差異。
變數的范圍很重要,但是在談論區域變數時,編譯器應該能夠將可變區域變數優化為與不可變變數相同的編譯代碼(假設您的原始示例),但是在談論實體屬性時,例如,不一定是這樣了。變數的范圍越大,如果您宣告它是可變的,就越難以推斷它是否曾經發生過變異。
現代編譯器采用巧妙而高效的優化,因此除非您在非常受限的硬體環境(例如帶有微控制器的嵌入式系統)中作業,而使用 Swift 開發時通常不是這種情況,否則您不應該考慮這種微優化(或者更確切地說過早的優化)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480051.html
上一篇:您如何推斷基準資料的波動?
下一篇:在阻塞應用設計中使用SpringWebflux的WebClient是否會導致比RestTemplate更大的資源使用
