The Benchmark module provides methods to measure and report the time used to execute Swift code.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Benchmark.xcodeproj
Benchmark
BenchmarkTests
.gitignore
Benchmark.podspec
CHANGELOG.md
LICENSE
README.md

README.md

Benchmark

The Benchmark module provides methods to measure and report the time used to execute Swift code.

License Language Carthage compatible CocoaPods compatible Awesome

Installation

Carthage

// Cartfile
github "WorldDownTown/Benchmark"

CocoaPods

// Podfile
pod 'Benchmark'

Usage

Simple measure

import Benchmark

Benchmark.measure() {
    print(self) // don't have to set weak.
    for _ in 0...10000000 { }
}
// Benchmark: 0.1690970063 sec.

// Benchamrk can be set name.
Benchmark.measure("Measure1") {
    for _ in 0...10000000 { }
}
// Measure1: 0.1690970063 sec.

Multiple measure

import Benchmark

func heavyMethod() {
    let outer = Benchmark(key: "outer")

    let inner = Benchmark(key: "inner")

    // some light processes
    for _ in 0...10 { }

    inner.finish()  // inner: 0.0002210140 sec.

    // some heavy processes
    for _ in 0...10000000 { }

    outer.finish()  // outer: 0.1663100123 sec.
}

Through another Class (or Struct or file ...)

import Benchmark

class Foo {
    func execute() {
        Benchmark.start()
    }
}

class Bar {
    func execute() {
        Benchmark.finish()
    }
}

Foo().execute()

Bar().execute()  // Benchmark: 0.0001509786 sec.

Using operator

import Benchmark

// same as Benchmark.measure {}
{
    for _ in 0...10000000 { }
}
// Benchmark: 0.1653281017 sec.

Contributing

Contributions are more than welcome! If you have an improvement or a feature you wish to have added to Benchmark, then please don't hesitate to send a pull request!

Author

WorldDownTown @ gmail.com

License

Benchmark is available under the MIT license. See the LICENSE file for more info.