Skip to content

Instantly share code, notes, and snippets.

@mzaks
Created April 30, 2015 17:26
Show Gist options
  • Select an option

  • Save mzaks/2d4f3b8353e2b0a2e8e7 to your computer and use it in GitHub Desktop.

Select an option

Save mzaks/2d4f3b8353e2b0a2e8e7 to your computer and use it in GitHub Desktop.
func measureTuple(){
var name : String = ""
let time = NSDate()
for i in 1...10_000_000{
let p = TPerson("some", 25, true)
name = p.name
}
let after = NSDate()
println("\(after.timeIntervalSince1970 - time.timeIntervalSince1970) Tuple 10M")
println(name)
}
measureTuple()
func measureStruct(){
var name : String = ""
let time = NSDate()
for i in 1...10_000_000{
let p = SPerson(name: "some", age: 25, male: true)
name = p.name
}
let after = NSDate()
println("\(after.timeIntervalSince1970 - time.timeIntervalSince1970) Struct 10M")
println(name)
}
measureStruct()
func measureEnum(){
var name : String = ""
let time = NSDate()
for i in 1...10_000_000 {
let p = EPerson.Male(name: "some", age: 25)
name = p.name()
}
let after = NSDate()
println("\(after.timeIntervalSince1970 - time.timeIntervalSince1970) Enum 10M")
println(name)
}
measureEnum()
func measureClas(){
var name : String = ""
let time = NSDate()
for i in 1...10_000_000 {
let p = CPerson(name: "some", age: 25, male: true)
name = p.name
}
let after = NSDate()
println("\(after.timeIntervalSince1970 - time.timeIntervalSince1970) Class 10M")
println(name)
}
measureClas()
// Compile in Release Mode -Os
// 2.09808349609375e-05 Tuple 10M
// 0.097527027130127 Struct 10M
// 0.111047029495239 Enum 10M
// 1.09468483924866 Class 10M
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment