use*_*805 11 compiler-construction performance types swift
我在读一本关于SWIFT(教程http://www.raywenderlich.com/74438/swift-tutorial-a-quick-start),它preconized,因为它更具有可读性这种方式不设置类型明确.
我不是真的同意这一点,但这不是问题.我的问题是:在性能(编译器......)方面明确设置类型是否更有效?
例如,这会:var hello: Int = 56
比这更有效:var tutorialTeam = 56
Col*_*inE 21
目前在性能上没有区别,使用显式类型的代码和代码之间,它使用类型推断.编译后的输出在每种情况下都是相同的.
省略类型时,编译器只是简单地推断它.
在接受的答案中观察到的非常小的差异只是您通常的微观基准文物,并且不可信任!
是否包含显式类型是一个品味问题.在某些情况下,它可能会使您的代码更具可读性.
唯一一次它对您的代码产生影响的是您希望为编译器推断的类型指定不同的类型.举个例子:
var num = 2
Run Code Online (Sandbox Code Playgroud)
上面的代码推断num
是一个Int
,因为它是用整数文字初始化的.但是你可以"强制"它Double
如下:
var num: Double = 2
Run Code Online (Sandbox Code Playgroud)
根据我的经验,使用显式类型与推断类型时,编译速度会对性能产生巨大影响。我的大部分编译缓慢的代码已通过显式键入变量得到解决。
看来 Swift 编译器在这方面还有改进的空间。尝试对您的一些项目进行基准测试,您会发现很大的差异。
这是我写的一篇文章,介绍如何加快 Swift 编译速度缓慢以及如何找出导致缓慢的原因。
归档时间: |
|
查看次数: |
3308 次 |
最近记录: |