繁体   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