Skip to content

Releases: ordo-one/package-benchmark

1.18.0

20 Dec 14:12
645e475
Compare
Choose a tag to compare

1.18.0 (2023-12-20)

Features

  • minor: Make CI fail with regression for crashes or other run failures (#211) (645e475)

1.17.0

20 Dec 12:01
5fb6d7e
Compare
Choose a tag to compare

1.17.0 (2023-12-20)

Bug Fixes

  • minor: Make CI fail for invalid arguments or failed benchmark builds (#210) (5fb6d7e)

1.16.0

15 Dec 15:33
05695c9
Compare
Choose a tag to compare

1.16.0 (2023-12-15)

Features

1.15.0

12 Dec 16:06
81bfd1f
Compare
Choose a tag to compare

1.15.0 (2023-12-12)

Features

Added support for the .microbenchmark metric set for convenience - also optimised the benchmark measurement overhead to make such microbenchmarks even better.

Fixed the rounding for results.

  • minor: Performance optimization and a few bug fixes (#206) (81bfd1f)

1.14.0

11 Dec 09:49
0b15255
Compare
Choose a tag to compare

1.14.0 (2023-12-11)

Features

Change the default output to be scaled to the inner loop count (and for throughput, always scale to this)

Add a new metric peakMemoryResidentDelta that discounts any test setup memory footprint and only shows the delta for the actual benchmark run for RSS.

What's Changed

Fixed TSAN failure
Fix (sometimes) cut off description
Proper checks for missing absolute threshold paths

  • feat(minor): Various outstanding fixes by @hassila in #204

Full Changelog: 1.13.0...1.14.0

1.13.0

28 Nov 13:13
f629323
Compare
Choose a tag to compare

1.13.0 (2023-11-28)

Features

  • minor: Lower required swift-system version to 1.1 to facilitate benchmark adoption for more users (#203) (f629323)

1.12.0

14 Nov 18:05
4038f5e
Compare
Choose a tag to compare

1.12.0 (2023-11-14)

Bug Fixes

  • Add missing tag in Influx datatype header (#197) (d632894)

What's Changed

  • chore: update package dependencies by @github-actions in #196
  • docs: Remove outdated section by @MahdiBM in #199
  • fix: Add missing tag in Influx datatype header by @clackary in #197
  • chore(minor): Fix sampling for virtual/resident memory peaks by @hassila in #200

New Contributors

Full Changelog: 1.11.2...1.12.0

1.11.2

22 Sep 09:50
070dee3
Compare
Choose a tag to compare

1.11.2 (2023-09-22)

1.11.1

14 Sep 12:23
6e0cdf8
Compare
Choose a tag to compare

1.11.1 (2023-09-14)

Bug Fixes

  • patch: Show exact deviations if rounded are zero (#188) (6e0cdf8)

1.11.0

14 Sep 09:46
8e6ffd9
Compare
Choose a tag to compare

1.11.0 (2023-09-14)

Features

Its desirable to be able to signal from CI if a threshold has been improved too and not only regressed, so we now return exit code 0 only for exact equal checks and 2 for regressions and 4 for improvements for baseline checks and absolute threshold comparisons.

Added support for signposts (#183) which makes profiling from Instruments easier to analyze.

The easiest way to access Instruments and profile a benchmark, is to simply quit Xcode and open the package with:
open --env BENCHMARK_DISABLE_JEMALLOC=1 Package.swift
This works around the Xcode bug that makes it impossible to use jemalloc and one can simply build for Profile and use instruments as usual - now with signpost information per benchmark run:

Added new objectAllocCount ARC stat counter and fixed the delta calculation to also take this initial refcount into account so retain/release deltas should be closer to reality (still sometimes non-zero due to some missing runtime hooks).

Also added support for optionally returning setupState from the benchmark setup hooks, to allow access to state that can be reused per benchmark iteration which is provided as an additional second parameter to the benchmark closure.

This can easily be done like this:

    Benchmark("SetupTeardown6") { benchmark, setupState in
        print("Array of integers: \(setupState)")
    } setup: {
        [1, 2, 3]
    }

Bug Fixes

  • minor: Add support for CI detection of absolute threshold improvements + signposts for Instruments (#182) (1e3568b)

  • minor: Fix incorrect syscalls (#187) (8e6ffd9)