[英]swift typecasting performance cost
我試圖保持我的func update:currentTime
盡可能快。 這個函數被SKScene
類覆蓋, SKScene
被調用大約 2000 到 4000 次。 我想遍歷場景的所有子項並進行可選的類型轉換以查看子項是否實現了我的Observer接口,然后對其調用更新。 注意:我在這里參考了兩個單獨的func update
方法。
如果我每秒打字 4000 次,我的表演會被拍嗎? 更重要的是,Swift 中的類型轉換有多昂貴?
上下文代碼:
// Called inside func update:currentTime
let children = self.children
for child in children {
if let observer = child as? TimerObserver {
observer.update()
}
}
謝謝!
這取決於。 從例如int
到float
轉換會產生成本,因為編譯器將創建真正的代碼來將一個轉換為另一個。
相比之下,對象類型轉換是免費的。 只是最終方法調用會失敗,因為轉換類型不是您告訴它應該的類型。 只是您假裝對象指針將指向某個合法對象。 指針本身沒有改變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.