also looking at this
chore(deps): update dependency mitata to v1 - autoclosed
#73This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| mitata | ^0.1.14 -> ^1.0.34 |
Release Notes
evanwashere/mitata (mitata)
v1.0.34
v1.0.33
v1.0.32
v1.0.31
v1.0.30
v1.0.29
v1.0.28
v1.0.27
v1.0.26
v1.0.25
v1.0.24
v1.0.23: mitata december holidays update
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
v1.0.21
v1.0.20: mitata early december update
🚀 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
v1.0.18
v1.0.17
v1.0.16
v1.0.15
v1.0.14: mitata november update
🛠️ 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 + 3other 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');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
v1.0.12
v1.0.11
v1.0.10
v1.0.9
v1.0.8
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3
v1.0.2
v1.0.1
v1.0.0
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.
2 changed files on the files tab, with 0 review threads.