Одним из способов проверки производительности функции является использование этой вспомогательной структуры. Добавьте в свой проект следующее:
struct Benchmark {
static func testElapsedTimeFor(_ title: String, operation: @escaping ()->()) {
let startTime = CFAbsoluteTimeGetCurrent()
operation()
let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
print("Time elapsed for \(title): \(timeElapsed) s.")
}
// If you would like to get the double instead
static func testElapsedTimeFor(operation: @escaping ()->()) -> Double {
let startTime = CFAbsoluteTimeGetCurrent()
operation()
let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
return Double(timeElapsed)
}
}
И используйте его так:
Benchmark.testElapsedTimeFor("First Function") {
self.isLeap(year: 2019)
}