簡體   English   中英

快速類型轉換性能成本

[英]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()
        }
    }

謝謝!

這取決於。 從例如intfloat轉換會產生成本,因為編譯器將創建真正的代碼來將一個轉換為另一個。

相比之下,對象類型轉換是免費的。 只是最終方法調用會失敗,因為轉換類型不是您告訴它應該的類型。 只是您假裝對象指針將指向某個合法對象。 指針本身沒有改變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM