Skip to content

Releases

v7.0.0-beta.0

v7.0.0-beta.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Nov 17:42
v7.0.0-beta.0
442e921

Note

This is a beta. Install it with @beta, e.g.
pnpm add -D @codspeed/tinybench-plugin@beta.

This release removes a source of measurement noise from your WallTime
benchmarks, so a result no longer depends on the single process it ran in.

Highlights

Walltime benchmarks run in fresh processes

Your tinybench and Vitest 5 benchmarks now run in 3 fresh processes each, and
CodSpeed pools their rounds into one result. JIT tier-up, heap sizing and
allocator state no longer carry over from one benchmark into the next.

No benchmark code changes required. Your CPU Simulation and Memory results are
unaffected, as are benchmark.js and Vitest 3/4.

Set the fork count, highest priority first:

  1. CODSPEED_WALLTIME_FORKS=<n>
  2. Vitest 5, per benchmark: bench(name, { forks }, fn)
  3. withCodSpeed(bench, { forks }) or codspeedPlugin({ forks })

CODSPEED_PROCESS_ISOLATION=false runs all benchmarks in one process, as
before.

Breaking Changes

  • WallTime benchmark values may shift when you upgrade
  • Each fork adds Node.js startup and re-runs the benchmark file's setup, so
    WallTime jobs take longer

What's Changed

Full Changelog: v6.1.1...v7.0.0-beta.0

v6.1.1

Choose a tag to compare

@github-actions github-actions released this 06 Nov 13:24
v6.1.1
4ab6d84

Fixes

  • Vitest: top-level benches now get matching flamegraph and result URIs
  • Core: the running node executable is excluded from callgrind, keeping
    flamegraphs readable when benchmarks run another binary (Bazel toolchains)
  • Core: the V8 RNG and string hashes are seeded in walltime mode, so runs
    with random inputs or hash-heavy structures no longer vary between runs
  • Core: analysis workloads compile eagerly with Sparkplug, reducing
    measurement noise; optimizing compilers stay disabled
  • Core: bundled axios and form-data bumped past known CVEs

What's Changed

  • fix(core): compile analysis workloads eagerly with sparkplug by @not-matthias in #104
  • fix(core): seed the V8 RNG and string hashes in walltime mode by @not-matthias in #105
  • fix(core): exclude the running node executable from callgrind by @not-matthias in #102
  • build(core): bump bundled axios and form-data past known CVEs by @GuillaumeLagrange in #115
  • fix(vitest-plugin): prefix walltime URIs of top-level benches with the file path by @not-matthias in #103
  • docs(core): flag that the backend mirrors the tested Node.js majors by @fargito in #116

Full Changelog: v6.1.0...v6.1.1

v6.1.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 15:10
v6.1.0
d15b97d

Important

CPU Simulation results change for Vitest 5 benchmarks. This release fixes a bug in @codspeed/vitest-plugin where Vitest 5 export getter tracking ran inside the measured code, inflating the measured cost of benchmarks that read module exports. The plugin now sets benchmark.suppressExportGetterWarnings to true by default, unless you set it explicitly. Even though this is a minor release, expect CPU Simulation results for Vitest 5 benchmarks to differ from those measured with 6.0.0 and 6.0.1. Benchmarks on Vitest 3 and 4 are unaffected.

What's Changed

Full Changelog: v6.0.1...v6.1.0

v6.0.1

Choose a tag to compare

@github-actions github-actions released this 14 Oct 08:35
v6.0.1
7f4107e

CodSpeed for Node.js 6.0.1 loads again on Linux arm64 systems with an older libstdc++, such as Ubuntu 22.04 and Debian 12. In 6.0.0, the native addon failed there with version 'CXXABI_1.3.15' not found (#96).

What's Changed

Full Changelog: v6.0.0...v6.0.1

v6.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 15:44
v6.0.0
f08a6b7

CodSpeed for Node.js 6.0.0 adds support for Node.js 24 and 26, Vitest 5 and Vite 8.

Highlights

Node.js 24 and 26

The plugins now ship prebuilt native addons for Node.js 22, 24 and 26, and warn in CI when running on an untested major.

Vitest 5

@codspeed/vitest-plugin supports Vitest 3, 4 and 5 with no configuration change. On Vitest 5, declare benchmarks with the bench test fixture. Each benchmark passed to bench.compare() is reported as its own benchmark in CodSpeed:

import { test } from "vitest";
import { fibonacci } from "./fibonacci";

test("fibo", async ({ bench }) => {
  await bench("fibo 10", () => {
    fibonacci(10);
  }).run();
  await bench("fibo 15", () => {
    fibonacci(15);
  }).run();
});

To compare implementations side by side, pass them to bench.compare() instead. Each benchmark in the group is still reported as its own benchmark in CodSpeed.

Check out the docs for more information!

Breaking changes

  • Node.js 22 or later is now required.
  • The CPU simulation instrument now disables Maglev on Node.js 24 and later, so hot functions tier up as they do on Node.js 22, and suppresses V8's minor GC task. Expect a one-time change in measured values after upgrading.

What's Changed

New Contributors

Full Changelog: v5.7.1...v6.0.0

v6.0.0-beta.2

v6.0.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Sep 12:41
v6.0.0-beta.2
d7b132e

What's Changed

Full Changelog: v6.0.0-beta.1...v6.0.0-beta.2

v6.0.0-beta.1

v6.0.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Sep 12:37
v6.0.0-beta.1
f387eec

What's Changed

  • feat(vitest-plugin): add vite 8 support by @adriencaccia in #74
  • fix(vitest-plugin): stop importing the deprecated vitest subpaths by @adriencaccia in #75
  • fix(vitest-plugin): call the bench setup and teardown hooks in analysis mode by @adriencaccia in #94

Full Changelog: v6.0.0-beta.0...v6.0.0-beta.1

v6.0.0-beta.0

v6.0.0-beta.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Aug 15:05
v6.0.0-beta.0
9338d9a

Breaking changes:

  • Raised the minimum required version to Node.js 22
  • Added --no-minor-gc-task on Node >= 20
  • Added --no-maglev on Node >= 24

What's Changed

This release adds support for Node.js 24.

Full Changelog: v5.7.1...v6.0.0-beta.0

v5.7.1

Choose a tag to compare

@github-actions github-actions released this 24 Jun 09:55
v5.7.1
56fa9fc

What's Changed

Full Changelog: v5.7.0...v5.7.1

v5.7.0

Choose a tag to compare

@github-actions github-actions released this 23 Jun 15:50
v5.7.0
36834e8

Highlights

  • Dump full inlining information for higher optimization tiers in walltime so we can show more functions on the profiler. To test it out, set CODSPEED_WALLTIME_PROFILER=samply env variable in the codspeed action.
  • Added support for tinybench v5 and v6 in @codspeed/tinybench-plugin

What's Changed

  • Add necessary flags to dump optimized inlining info and fix walltime marker placement by @GuillaumeLagrange in #83

Full Changelog: v5.6.0...v5.7.0