Skip to content

Releases: ordo-one/package-benchmark

0.8.0

16 Feb 09:54
81bd87b
Compare
Choose a tag to compare

What's Changed

  • feat: Add Configuration type to allow sharing of common configurations between benchmarks by @hassila in #59

Refactored configuration into a separate type and simplified the benchmark init signature accordingly.

This allows for sharing of configurations between benchmarks more easily, but is a source break.

It's trivial to change existing options for a benchmark though, e.g.

    Benchmark("Memory transient allocations + 1 large leak",
              metrics: BenchmarkMetric.memory,
              throughputScalingFactor: .kilo) { benchmark in
        performAllocations(count: benchmark.throughputScalingFactor.rawValue, size: 11 * 1024 * 1024)
        performAllocations(count: 1, size: 32 * 1024 * 1024, shouldFree: false)
    }

becomes

    Benchmark("Memory transient allocations + 1 large leak",
         configuration: .init(metrics: BenchmarkMetric.memory,
                                         throughputScalingFactor: .kilo)) { benchmark in
        performAllocations(count: benchmark.throughputScalingFactor.rawValue, size: 11 * 1024 * 1024)
        performAllocations(count: 1, size: 32 * 1024 * 1024, shouldFree: false)
    }

and

    Benchmark.defaultDesiredDuration = .milliseconds(10)
    Benchmark.defaultDesiredIterations = .giga(1)

becomes analogous

    Benchmark.defaultConfiguration = .init(desiredDuration: .milliseconds(10),
                                           desiredIterations: .giga(1))

or (both works)

Benchmark.defaultConfiguration.desiredDuration = .milliseconds(10)
Benchmark.defaultConfiguration.desiredIterations = .giga(1)

Gives nicer API and reusability of settings among targets.

Full Changelog: 0.7.0...0.8.0

0.7.0

15 Feb 11:52
14e415a
Compare
Choose a tag to compare

What's Changed

  • feat: Add regex support for targets and benchmark for filter/skip by @hassila in #57

We've renamed skip to skip-target and added filter and skip as options for actual benchmarks in this release.

It is now supported to use regex patterns for all target/skip-target/filter/skip options, e.g.:

swift package benchmark --filter ".*lock.*" --filter ".*[a-s]ile" --skip-target ".*slow"

Full Changelog: 0.6.1...0.7.0

0.6.1

14 Feb 13:12
142c7b4
Compare
Choose a tag to compare

What's Changed

  • feat: Run all benchmarks in isolation by @hassila in #56

Full Changelog: 0.6.0...0.6.1

0.6.0

13 Feb 14:38
6fc640f
Compare
Choose a tag to compare

What's Changed

  • feat: Integrate with hdr histogram by @dimlio in #54
  • fix: correct histogram benchmark by @dimlio in #55

New Contributors

Full Changelog: 0.5.4...0.6.0

0.5.4

08 Feb 08:03
a3f3c4c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.5.3...0.5.4

0.5.3

30 Jan 13:08
236ad63
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.5.2...0.5.3

0.5.2

12 Dec 14:07
d5ebff9
Compare
Choose a tag to compare

Just a bump release to test SwiftPackageIndex

0.5.1

12 Dec 11:57
4081693
Compare
Choose a tag to compare

What's Changed

  • ci: 🔄 Synced file(s) with ordo-one/public-repository-templates by @ordo-ci in #42
  • ci: sync workflow files by @freef4ll in #43
  • feat: SwiftPackageIndex support by @hassila in #45

New Contributors

Full Changelog: 0.5.0...0.5.1

0.5.0

29 Nov 14:55
a47f7e3
Compare
Choose a tag to compare

What's Changed

  • chore: Move to use DateTime package by @hassila in #41

This version moves up the dependency to Swift 5.7 and macOS v13 as we start using real Swift Duration and Clock/Instant types.

Full Changelog: 0.4.3...0.5.0

0.4.3

28 Oct 08:10
13d1a5f
Compare
Choose a tag to compare

What's Changed

  • chore: Update documentation by @hassila in #38
  • chore: Move to dispatch conditions / NIOLock instead of raw pthread mutex/conditions by @hassila in #39

Full Changelog: 0.4.2...0.4.3