# swift-benchmark **Repository Path**: BitBuilder/swift-benchmark ## Basic Information - **Project Name**: swift-benchmark - **Description**: https://github.com/google/swift-benchmark - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-03 - **Last Updated**: 2022-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # swift-benchmark A Swift library for benchmarking code snippets, similar to [google/benchmark](https://github.com/google/benchmark). Example: ```swift import Benchmark benchmark("add string reserved capacity") { var x: String = "" x.reserveCapacity(2000) for _ in 1...1000 { x += "hi" } } Benchmark.main() ``` At runtime, you can filter which benchmarks to run by using the `--filter` command line flag. For more details on what options are available, pass either the `-h` or `--help` command line flags. Example: ```terminal $ swift run -c release BenchmarkMinimalExample --help USAGE: benchmark-command [--allow-debug-build] [--filter ] [--filter-not ] [--iterations ] [--warmup-iterations ] [--min-time ] [--max-iterations ] [--time-unit ] [--inverse-time-unit ] [--columns ] [--format ] [--quiet] OPTIONS: --allow-debug-build Overrides check to verify optimized build. --filter Run only benchmarks whose names match the regular expression. --filter-not Exclude benchmarks whose names match the regular expression. --iterations Number of iterations to run. --warmup-iterations Number of warm-up iterations to run. --min-time Minimal time to run when automatically detecting number iterations. --max-iterations Maximum number of iterations to run when automatically detecting number iterations. --time-unit Time unit used to report the timing results. --inverse-time-unit Inverse time unit used to report throughput results. --columns Comma-separated list of column names to show. --format Output format (valid values are: json, csv, console, none). --quiet Only print final benchmark results. -h, --help Show help information. $ swift run -c release BenchmarkMinimalExample running add string no capacity... done! (1832.52 ms) running add string reserved capacity... done! (1813.96 ms) name time std iterations ----------------------------------------------------------- add string no capacity 37435 ns ± 6.22 % 37196 add string reserved capacity 37022 ns ± 1.75 % 37749 ``` For more examples, see [Sources/BenchmarkMinimalExample](./Sources/BenchmarkMinimalExample) and [Sources/BenchmarkSuiteExample](./Sources/BenchmarkSuiteExample). ## Usage Add this library as a SwiftPM dependency: ```swift let package = Package( name: ... , products: [ .executable(name: "Benchmarks", targets: ["Benchmarks"]) ], dependencies: [ .package(url: "https://github.com/google/swift-benchmark", from: "0.1.0") ], targets: [ .target( name: "Benchmarks", dependencies: [.product(name: "Benchmark", package: "swift-benchmark")] ) ] ) ``` ## Roadmap The project is in an early stage and offers only a basic set of benchmarking utilities. Feel free to file issues and feature requests to help us prioritize what to do next. ## License Please see [LICENSE](LICENSE) for details. ## Contributing Please see [CONTRIBUTING.md] for details. [CONTRIBUTING.md]: CONTRIBUTING.md