Skip to content

Latest commit

 

History

History
690 lines (353 loc) · 25.5 KB

CHANGELOG.md

File metadata and controls

690 lines (353 loc) · 25.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.8.14 (2024-11-18)

🐞 Bug Fixes

  • use performance.now() for timestamping with node (0497b2c)

✨ Polish

  • cleanup JS runtime detection code (66310b4)
  • refine browser JS runtime detection (7537b2b)

0.8.13 (2024-10-27)

🐞 Bug Fixes

  • fix throughput samples imputation in corner case (8de3cc7)

✨ Polish

  • avoid variable affectation (eb35407)

📚 Documentation

  • README.md: add missing warmupTime options (356d72d)

🤖 Automation

  • ci: handle various release type on npm registry (7cf519d)

0.8.12 (2024-10-21)

🚀 Features

  • add warmup minimum execution time option (7718d34)

0.8.11 (2024-10-20)

🐞 Bug Fixes

  • bind timestamping method to their modules once (3cfcc9b)

⚡ Performance

  • bind timestamping functions to their module (dffe3f0)

0.8.10 (2024-10-19)

✨ Polish

  • factor out statistics computation from samples (3c2a41f)

0.8.9 (2024-10-18)

🚀 Features

  • add after/before each function iteration hooks (c7543ae)

✨ Polish

  • cleanup benchmark building (aff9b96)

📚 Documentation

  • refine measure() comment (b3910a0)

0.8.8 (2024-10-18)

🐞 Bug Fixes

  • improve statistical accuracy (ab1753f)

0.8.7 (2024-10-18)

🐞 Bug Fixes

  • handle corner case promise like benchmark function (ad9c3be)
  • promise like rejection without catch handling (57de829)

0.8.6 (2024-10-17)

🐞 Bug Fixes

  • avoid duplicate benchmark run (61c8eb2)

0.8.5 (2024-10-16)

🐞 Bug Fixes

  • properly handle nullish arg in isAsyncFunction() (79aa988)
  • properly handle promises in benchmark (f7ee29e)

✨ Polish

📚 Documentation

  • README.md: refine example code (0d9762d)

0.8.4 (2024-10-10)

🐞 Bug Fixes

  • handle divide by zero in throughput samples (7d6d9fe)

✨ Polish

🤖 Automation

  • ci: switch to deno 2.x.x (cf495ef)

0.8.3 (2024-10-08)

🚀 Features

0.8.2 (2024-10-04)

🐞 Bug Fixes

  • refine latency MAD display and warning conditions (ab2cf96)
  • refine throughput warning condition (5d19f0a)

0.8.1 (2024-10-04)

🐞 Bug Fixes

  • format iters/s warnings properly (175d7f6)

0.8.0 (2024-10-04)

⚠ BREAKING CHANGES

  • add custom benchmark reporter support
  • untangle latency and throughput (stats, display, ...)

🚀 Features

  • add custom benchmark reporter support (4c16a3a), closes #29

🐞 Bug Fixes

  • fix reporter type definition (6c2979c)

✨ Polish

  • cleanup isFunction() helper implementation (8c679f4)
  • untangle latency and throughput (stats, display, ...) (683588f)
  • use isFunction() in more code paths (57e0b32)

0.7.4 (2024-10-03)

🐞 Bug Fixes

  • add upper/lower values to BMF throughput (406e14b)
  • fix BMF report upper/lower values (0563f5b)

✨ Polish

  • factor out function type detection helpers (cada431)
  • major restructuration to ease pluggable features (25ac409)
  • reporter: simplify iters std dev computation (c13fc14)
  • untangle terminal display primitives from main code (40638ae)

0.7.3 (2024-10-02)

🐞 Bug Fixes

  • fix MAD display units (6dea0b2)
  • refine TS types definition (4ca5068)

✨ Polish

  • cleanup warning message (4f02f2e)

0.7.2 (2024-10-01)

🚀 Features

  • allow to define benchmark behavior at all levels (a86ced9)

✨ Polish

  • display explicit warning about samples statistical (82d08ea)
  • refine variable name (ced909a)
  • use isObject() helper in more places (d7f20f4)

0.7.1 (2024-09-30)

🐞 Bug Fixes

  • add upper/lower values to BMF throughput report (4555059)

0.7.0 (2024-09-30)

⚠ BREAKING CHANGES

  • rename iter/s to iters/s (like ops/s)

✨ Polish

  • cleanup statistics helper arguments namespace (846655b)
  • rename iter/s to iters/s (like ops/s) (f188e81)

0.6.4 (2024-09-30)

🐞 Bug Fixes

  • do not round timestamping (bc2f605)

✨ Polish

  • display MAD when necessary in p50 percentile (4e42c6a)

📚 Documentation

0.6.3 (2024-09-29)

🐞 Bug Fixes

  • fix benchmark related functions async detection (038340c)

📚 Documentation

  • comment a bit benchmark stats data structure (2bcd724)

0.6.2 (2024-09-29)

🚀 Features

  • add average and median absolute deviation to stats (cdf968a)

🐞 Bug Fixes

  • fix absolute deviation computation (c2ad613)

✨ Polish

  • cleanup quantile computation implementation (8279e44)
  • median() -> medianSorted() (850e46c)
  • refine benchmark time measurement displaying (c5e2c8e)
  • rename mean() -> average() (81749fb)

0.6.1 (2024-09-29)

🐞 Bug Fixes

  • call garbage collector before each benchmark (21bdbf3)
  • fix gc() call on unknown JS runtime (893f960)
  • fix gc() implementation on Deno runtime (b386e8a)
  • improve gc() detection on browser (5146ef7)
  • try to run gc() with more JS runtimes (1cef68c)

✨ Polish

  • cleanup colors in output detection (551df36)
  • cleanup gc() implementation (5ebe98a)
  • cleanup variables namespace (f84c010)
  • deno 2.x.x support (fd39123)

📚 Documentation

  • README.md: cleanup description (93963cb)
  • README.md: refine description (83fa873)

0.6.0 (2024-09-26)

⚠ BREAKING CHANGES

  • remove clear() from the public API

🐞 Bug Fixes

  • ensure unknown JS runtime has proper defaults (5705403)
  • make standalone CLI executable generation works on Windows™ (50b3e6e)
  • remove clear() from the public API (3bfdb3c)

✨ Polish

  • cleanup deps for standalone binary generation (3f2329a)
  • cleanup test and cli building scripts usage (44e5b93)
  • enable .editorconfig in biome formatter (de27a2c)
  • refine package.json cli:* scripts (20c9dfc)

🤖 Automation

  • cli: fix build:cli script recursion (47aac22)
  • cli: run sequentially cli build scripts (44d90e0)
  • sync bun packages lock file (a064be1)

0.5.7 (2024-08-08)

📚 Documentation

  • add deno CLI installation section (dfd421c)

0.5.6 (2024-08-08)

🚀 Features

  • add bun single-file executable for CLI support (7961789)

🐞 Bug Fixes

  • cli: print meaningful message if package.json not found (bda431f)

0.5.5 (2024-07-20)

✨ Polish

  • make benchmarks more friendly with dark theme (a85c9a6)

📚 Documentation

  • fix ms conversion to ps in units cheatsheet (acd154a)

0.5.4 (2024-07-18)

🐞 Bug Fixes

  • handle extrageanous space in CLI benchmarks (8b50d44)
  • make node sea generation works (06fdc40)
  • make node sea works which n (de36378)

✨ Polish

  • add scripts for CLI binary generation (82c15f5)
  • npx -> bunx where appropriates (db7b392)

0.5.3 (2024-07-11)

🚀 Features

  • add node single executable application configuration (e48ed77)

🐞 Bug Fixes

  • ensure CLI standalone binary includes required files (1589024)

0.5.2 (2024-07-10)

🚀 Features

  • allow to specify the number of warmup runs (9f29086)
  • cli: allow to execute custom commands at benchmarking steps (69c1fdc)

✨ Polish

  • cleanup empty function usage (007345d)

0.5.1 (2024-07-09)

📚 Documentation

  • fix CLI usage documentation (33735e3)

0.5.0 (2024-07-09)

⚠ BREAKING CHANGES

  • add CLI (#8)

🚀 Features

🐞 Bug Fixes

  • ensure file write default JSON output to configured file (394b033)

📚 Documentation

0.4.16 (2024-07-05)

🚀 Features

  • switch to release-please release manager (234f244)

📚 Documentation

✨ Polish

  • ci: cleanup GH action (ee255e7)
  • refine GH action setup-bun configuration (25382b6)
  • switch biome.js configuration to standard.js style (5d9754a)

🤖 Automation

  • ci: add autofix GH action (736c4f8)
  • ci: do not cancel workflow on autofix.ci error (d2b04dc)
  • ci: fix setup-bun configuration (a12a9d0)
  • ci: really ensure tag version is not prefixed with 'v' (7dbb1be)
  • ci: remove v prefix in release-please tag (1aa36d1)
  • deps-dev: apply updates (51d9eea)
  • deps-dev: apply updates (e8d8302)
  • deps-dev: apply updates (8603c48)
  • deps-dev: apply updates (0a7ace0)
  • deps-dev: apply updates (0785cfc)
  • deps-dev: apply updates (1f3034e)
  • deps-dev: apply updates (b9bb1e0)
  • deps: bump oven-sh/setup-bun from 1 to 2 (9c3fe1b)

[0.4.15] - 2024-06-16

Fixed

  • Fix a sanity check at benchmarks summary display.

[0.4.14] - 2024-06-16

Fixed

  • Ensure benchmarks summary is only displayed with two valid benchmarks.

[0.4.13] - 2024-05-25

Changed

  • Maintenance release.

[0.4.12] - 2024-05-18

Fixed

  • Fix benchmark throughput computation.

[0.4.11] - 2024-05-17

Changed

  • Add benchmark relative speed ratio error margin to summary.

[0.4.10] - 2024-05-16

Fixed

  • Fix run() warmup option handling.
  • Display summary for no group benchmarks.

[0.4.9] - 2024-05-13

Changed

  • Add file to run() option allowing to save the JSON output to a file.

[0.4.8] - 2024-05-13

Fixed

  • Ensure report returned by run() is not cleared.
  • Fix run() json option handling.

[0.4.7] - 2024-05-13 (not released)

Fixed

  • Ensure report returned by run() is not cleared.

[0.4.6] - 2024-05-13

Changed

  • Add JSON BMF benchmark report format support to allow integration with Bencher.

[0.4.5] - 2024-05-11

Changed

  • Move benchmark options to run().

[0.4.4] - 2024-04-19

Fixed

  • Fix benchmark function JSDoc type definition.

Changed

  • Add group() asynchronous callback support.

[0.4.3] - 2024-04-17

Fixed

  • Fix JSDoc API description.

[0.4.2] - 2024-04-17

Fixed

  • Fix bench() and baseline() type definitions.

[0.4.1] - 2024-04-16

Fixed

  • Fix browser support.

[0.4.0] - 2024-04-15

Fixed

  • Fix ESM browser export.

Changed

  • BREAKING CHANGE: rename the default exported file to a more de facto standardized namespace. Usage in browser is impacted.

[0.3.4] - 2024-04-14

Added

  • Add releasing on JSR.

[0.3.3] - 2024-04-14

Fixed

  • Fix rate computation and formatting in summary.
  • Less biased timestamp rounding.
  • Refine minimum number of samples for Student t-distribution.

[0.3.2] - 2024-04-13

Changed

  • Add accurate two-tailed Student t-distribution table for 95% confidence level.

[0.3.1] - 2024-04-12

Fixed

  • Ensure default minimum samples guarantee statistical significance.

[0.3.0] - 2024-04-10

Fixed

  • Fix statistical significance threshold value and reporting in JSON.

Changed

  • Add error margin to report.
  • Remove IQR filtering since error margin permits to evaluate the results statistical significance.
  • BREAKING CHANGE: rename in JSON report std to sd for the standard deviation.
  • BREAKING CHANGE: switch percentile p999 to p995 in report.

[0.2.3] - 2024-04-08

Fixed

  • Align iter/s with time (avg) formatting.

Changed

  • Add median (p50) to console output.

[0.2.2] - 2024-04-08

Changed

  • Optimize benchmark statistics computation.

[0.2.1] - 2024-04-07

Changed

  • Add time: number to run() options specifying the minimum benchmark time in nanoseconds.

[0.2.0] - 2024-04-07

Fixed

  • Fix measure() asynchronous implementation.
  • Fix percentiles computation.
  • Fix inconsistent benchmark behavior: the samples statistical significance shall be done on the same measurement base.

Changed

  • Add clear() benchmark clearing primitive.
  • Optimize JavaScript runtime environment detection code (constify environment variables).
  • Add IQR samples outlier detection and removal.
  • Add standard deviation to JSON report.
  • Add samples: number to run() options specifying the minimum number of benchmark samples.
  • Add options: { before: () => void | Promise<void>; after: () => void | Promise<void> } to bench() and baseline() specifying callbacks to run before and after the benchmark.
  • Add options: { before: () => void | Promise<void>; after: () => void | Promise<void> } to group() specifying callbacks to run before and after the group.
  • Add iter/s to report.
  • Add package publication GitHub workflow.

[0.1.11] - 2024-02-20