Skip to content

Instantly share code, notes, and snippets.

@getaaron
Last active November 15, 2015 18:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save getaaron/11b751b15489b0b95e9e to your computer and use it in GitHub Desktop.
Save getaaron/11b751b15489b0b95e9e to your computer and use it in GitHub Desktop.
func measure(block : () -> ()) -> NSTimeInterval {
var averages = [NSTimeInterval]()
for _ in 1...1000 {
let date = NSDate()
block()
averages.append(NSDate().timeIntervalSinceDate(date))
}
return averages.reduce(0, combine: +) / Double(averages.count)
}
let filterAverage = measure {
let arr = ["a", "b", "c", "b"]
let farray = arr.filter {$0 != "b"}
}
// http://stackoverflow.com/a/33722186/1445366
let loopAverage = measure {
var Array : [String]
Array = ["a", "b", "c", "b"]
let itemToRemove = "b"
while Array.contains(itemToRemove){
if let itemToRemoveIndex = Array.indexOf(itemToRemove){
Array.removeAtIndex(itemToRemoveIndex)
}
}
}
// percentage increase
(filterAverage - loopAverage) / loopAverage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment