jweinst1
9/25/2016 - 1:44 AM

swift timing

swift timing

let funcs:[String:(Int) -> Int] = [
    "add":{(x:Int) in return x + 2},
    "sub":{(x:Int) in return x - 2},
    "mul":{(x:Int) in return x * 2}
]

func arth(x:Int, cmd:String) -> Int {
    switch cmd {
    case "add":
        return x + 2
    case "sub":
        return x - 2
    case "mul":
        return x * 2
    default:
        return 0
    }
}

let s = NSDate()
funcs["add"]!(2)
let a = NSDate().timeIntervalSince(s as Date)
//0.001639008522033691

let b = NSDate()
arth(x:2, cmd:"sub")
let c = NSDate().timeIntervalSince(b as Date)
//0.0004680156707763672

//switch statements are 4-5 of times faster than dictionary lookup