How to measure function execution time in Swift

1 Answer

0 votes
// Measuring function execution time in 
// Swift using a reusable Timer (milliseconds + seconds)

import Foundation

// ---------------------------
// Reusable Timer struct
// ---------------------------
struct TimerSwift {
    private var start: UInt64 = 0
    private var end: UInt64 = 0

    // Start the timer
    mutating func startTimer() {
        start = DispatchTime.now().uptimeNanoseconds // high‑precision timer
    }

    // Stop the timer
    mutating func stopTimer() {
        end = DispatchTime.now().uptimeNanoseconds
    }

    // Return elapsed time in milliseconds
    func elapsedMilliseconds() -> Double {
        return Double(end - start) / 1_000_000.0
    }

    // Return elapsed time in seconds
    func elapsedSeconds() -> Double {
        return Double(end - start) / 1_000_000_000.0
    }
}

// ---------------------------
// Function to measure
// ---------------------------
func work() {
    var sum: UInt64 = 0
    for i in 0..<100_000_000 {
        sum += UInt64(i)
    }
}

// ---------------------------
// Main program
// ---------------------------
var t = TimerSwift()

t.startTimer()
work()
t.stopTimer()

let ms = t.elapsedMilliseconds()
let sec = t.elapsedSeconds()

print("Execution time: \(ms) ms")
print("Execution time: \(sec) seconds")



/* 
run:

Execution time: 13841.738432 ms
Execution time: 13.841738432 seconds

*/

 



answered 2 hours ago by avibootz
...