Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update devdependency mitata to v1 #139

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Sep 20, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
mitata ^0.1.14 -> ^1.0.27 age adoption passing confidence

Release Notes

evanwashere/mitata (mitata)

v1.0.27

Compare Source

v1.0.26

Compare Source

v1.0.25

Compare Source

v1.0.24

Compare Source

v1.0.23: mitata december holidays update

Compare Source

docs now feature writing good benchmarks section to help people with improving their micro-benchmarks

🚀 New Features

concurrency benchmarks

mitata now offers quick and transparent way to test concurrency of asynchronous functions

bench('sleep(1000) x $concurrency', function* () {
  yield async () => await sleep(1000);
}).range('concurrency', 1, 1024);

benchmark                   avg (min  max) p75   p99    (min  top 1%)
------------------------------------------- -------------------------------
sleep(1000) x 1                 1.00 s/iter    1.00 s                   
                          (1.00 s  1.00 s)    1.00 s █▁███▁▁▁▁▁█▁▁▁▁█▁▁█▁█
sleep(1000) x 8                 1.00 s/iter    1.00 s                    
                          (1.00 s  1.00 s)    1.00 s ▆▁▁▆▁▁▁▁▁▁▁█▁▁▁▆▁▆█▁▆
sleep(1000) x 64                1.00 s/iter    1.00 s                ██   
                          (1.00 s  1.00 s)    1.00 s █▁▁▁█▁▁▁▁▁▁██▁███▁▁▁█
sleep(1000) x 512               1.00 s/iter    1.00 s                   
                          (1.00 s  1.00 s)    1.00 s ▆▁▁▁▁▁▁▁▁▆▆█▁█▁▁▁▁▁▁█
sleep(1000) x 1024              1.00 s/iter    1.00 s                   
                          (1.00 s  1.00 s)    1.00 s ▆▁▁▁▁▆▁█▁█▆▆▁▁▁▁▁▁▁▁█

v1.0.22

Compare Source

v1.0.21

Compare Source

v1.0.20: mitata early december update

Compare Source

🚀 New Features

do_not_optimize

utility function to prevent jit from optimizing out values in benchmarks

import { bench, do_not_optimize } from 'mitata';

bench(function () {
  do_not_optimize(new Array(0));
});

hardware counters

bun add @​mitata/counters

mitata now supports collecting and displaying hardware counters on macos and linux

------------------------------------------- -------------------------------
Date.now()                    27.25 ns/iter  27.75 ns █                    
                      (26.32 ns … 32.33 ns)  30.81 ns █▃▂▁▂▅▂▁▂▂▂▂▁▂▂▁▁▁▁▁▁
                  2.20 ipc (  0.00% stalls)  99.99% L1 data cache
          95.35 cycles  209.98 instructions  25.48% retired LD/ST (  53.50)

computed parameters

benchmarks now can include generated parameters that avoid variables hoisting optimization in loops

bench('a * b', function* () {
  yield {
    [0]() {
      return Math.random();
    },

    [1]() {
      return Math.random();
    },

    bench(a, b) {
      do_not_optimize(a * b);
    },
  };
});
------------------------------------------- -------------------------------
a * b                        611.20 ps/iter 600.10 ps  █                   
                      (559.33 ps … 8.20 ns)   1.43 ns ▂█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
a / b                        913.91 ps/iter 895.26 ps  █                   
                      (844.48 ps … 8.03 ns)   1.87 ns ▁█▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁

v1.0.19

Compare Source

v1.0.18

Compare Source

v1.0.17

Compare Source

v1.0.16

Compare Source

v1.0.15

Compare Source

v1.0.14: mitata november update

Compare Source

🛠️ Changes

groups can have names

group(name, () => {
  ...
});

 math
-------------------------------------------
1 + 1                         87.43 ps/iter
                       (51.03 ps  9.83 ns)

charts/visualizations can be nested and combined

summary(() => {
  barplot(() => {
    bench(...);
  });

  barplot(() => { ... });
});

------------------------------------------- -------------------------------
1 + 1                        105.54 ps/iter  91.55 ps                     !
                       (61.04 ps  1.83 µs) 122.07 ps ▁▁▁▁▁▁▁█▁▁█▁▁▁▁▁▁▄▁▁▂
Date.now()                    39.61 ns/iter  28.01 ns                     
                       (27.83 ns  3.19 µs) 153.12 ns █▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁

                                                                         
                       1 + 1  105.54 ps
                  Date.now() ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 39.61 ns
                                                                         

summary
  1 + 1
   375.26x faster than Date.now()

------------------------------------------- -------------------------------
2 + 2                        117.75 ps/iter  91.55 ps                     !
                       (61.04 ps  3.69 µs) 112.06 ps ▁▁▁▁▁▁▁▁█▁▁▁█▁▁▁▁▁▁▁▁
3 + 3                        126.97 ps/iter  91.55 ps                     !
                       (61.04 ps  4.23 µs) 122.07 ps ▁▁▁▁▁▁▁█▁▁█▁▁▁▁▁▁▄▁▁▂

                                                                         
                       2 + 2  117.75 ps
                       3 + 3 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 126.97 ps
                                                                         

summary
  2 + 2
   1.08x faster than 3 + 3

other notable changes

  • support for detecting webcontainers
  • benchmark names now have 28 chars of space
  • optimized amount of ansi codes outputted in some charts

🚀 New Features

benchmark names can be highlighted

bench(...).highlight('red');
image

markdown table format

await run({ format: 'markdown' });

clk: ~3.17 GHz
cpu: Apple M2 Pro
runtime: bun 1.1.26 (arm64-darwin)

benchmark avg min p75 p99 max
1 + 1 90.69 ps/iter 61.04 ps 91.55 ps 122.07 ps 309.74 ns
Date.now() 28.70 ns/iter 26.70 ns 28.01 ns 43.35 ns 413.05 ns

option to fine tune garbage collection behavior

// runs gc before each iteration 
bench(...).gc('inner');

v1.0.13

Compare Source

v1.0.12

Compare Source

v1.0.11

Compare Source

v1.0.10

Compare Source

v1.0.9

Compare Source

v1.0.8

Compare Source

v1.0.7

Compare Source

v1.0.6

Compare Source

v1.0.5

Compare Source

v1.0.4

Compare Source

v1.0.3

Compare Source

v1.0.2

Compare Source

v1.0.1

Compare Source

v1.0.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/mitata-1.x branch 9 times, most recently from 656ab02 to 3099c06 Compare September 27, 2024 20:06
@renovate renovate bot force-pushed the renovate/mitata-1.x branch from 3099c06 to 7d9fa36 Compare September 28, 2024 19:21
@renovate renovate bot force-pushed the renovate/mitata-1.x branch 2 times, most recently from 7dce20f to 5668cd5 Compare November 20, 2024 16:00
Copy link

codecov bot commented Nov 20, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.08%. Comparing base (acbdafd) to head (0db5ccc).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #139   +/-   ##
=======================================
  Coverage   99.08%   99.08%           
=======================================
  Files           9        9           
  Lines         327      327           
  Branches       99       99           
=======================================
  Hits          324      324           
  Misses          3        3           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@renovate renovate bot force-pushed the renovate/mitata-1.x branch 6 times, most recently from 3fc7c6f to e71224c Compare November 26, 2024 19:58
@renovate renovate bot force-pushed the renovate/mitata-1.x branch from e71224c to 2c7219f Compare December 1, 2024 12:18
@renovate renovate bot force-pushed the renovate/mitata-1.x branch from 2c7219f to 794fc54 Compare December 12, 2024 23:00
@renovate renovate bot force-pushed the renovate/mitata-1.x branch 2 times, most recently from 218e764 to 6aadaf8 Compare December 26, 2024 00:14
@renovate renovate bot force-pushed the renovate/mitata-1.x branch 2 times, most recently from d2e388d to 5232f5b Compare January 5, 2025 10:46
@renovate renovate bot force-pushed the renovate/mitata-1.x branch from 5232f5b to 0db5ccc Compare January 9, 2025 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants