Swift shell与Swift编译的区别

时间:2016-11-13 18:05:30

标签: swift compilation

我是swift的新手,今天我写了一个小脚本来测试它的科学应用。 关于我编写的小应用程序,它看起来比C ++慢但比python快。但是,我注意到,如果我使用解释器运行我的应用程序(比如来自终端swift main.swift)或者我编译它,那么执行时间没有区别。

我错过了什么或者是否正常。我本来期望在编译版本中有相当大的加速。这里是示例代码:

    import Foundation

    func isPrime(num:Int) -> Int {

         var IsPrime = 0
         var count = 1

         for index in 1...num-1 {

        if (num % index != 0) {
            ++count

        }

    }

    if (count == num-1) {

        IsPrime = 1
    }

    return IsPrime

}


   var isReallyPrime = 0
   var maxNum = 10000
   print(isPrime(21))

let methodStart = NSDate()

var primeArray = [Int]()

for index in 2...maxNum-1 {

    if (index%1000 == 0) {

        print("Iterarion   \(index)")

    }

    if (isPrime(index) == 1) {
        primeArray.append(index)
    }
}

   let methodFinish = NSDate()
   let executionTime = methodFinish.timeIntervalSinceDate(methodStart)


var last =  primeArray.last
print("Last prime number:  \(last)")
print("Execution time [s]: \(executionTime)")

1 个答案:

答案 0 :(得分:1)

swift main.swift

编译Swift代码然后运行它。因此,与编译二进制文件相比,唯一的开销是在每次调用时编译代码。

您甚至可以传递编译器选项,例如优化级别:

swift -Onone main.swift
swift -O main.swift 
swift -Ounchecked main.swift