e30b3c6b35
* chore(docs): rename benchmark CPU from 7950X3D to 9950X
The "Reproduced on" line in the umbrella + binding READMEs and the
benchmark page on the site listed the wrong AMD CPU. The benchmarks
were actually produced on a Ryzen 9 9950X, not a 7950X3D. Same
column for absolute µs values applies — the speedup ratios in the
tables are unchanged either way because they're relative across
libraries on the same machine.
The performance-regression issue template's CPU example also
updated for consistency (it was a generic placeholder, but matching
the canonical machine makes the example concrete).
* chore(npm): restore Windows ARM64 sub-package + napi matrix entry
npm Support unblocked the `wickra-win32-arm64-msvc` package name and
transferred write access to @kingchenc (placeholder 0.0.1-security
was published from their side; we ship our first real version on
top of that). This re-enables every change 8aa74cb temporarily
backed out for 0.2.1:
- bindings/node/package.json: re-add `aarch64-pc-windows-msvc` to
napi.triples.additional and `wickra-win32-arm64-msvc` to
optionalDependencies.
- bindings/node/npm/win32-arm64-msvc/package.json: restored — name,
cpu = arm64, os = win32, version pinned to the workspace.
- .github/workflows/release.yml: re-enable the
`windows-11-arm / aarch64-pc-windows-msvc` row in the node-build
matrix and drop the "temporarily skipped" comment block.
After the next tag-push this binding will be published alongside
the other five platforms and `npm install wickra` on Windows ARM64
will resolve to a native build instead of failing the loader's
optional-dep lookup.
* release: bump workspace + bindings to 0.2.7
Workspace, every binding (Python, Node, six platform stubs incl. the
restored win32-arm64-msvc), and the CHANGELOG all move together to
0.2.7. wickra-win32-arm64-msvc is now part of the standard publish
matrix and will land on npm alongside the other five binaries.
The 0.2.7 CHANGELOG entry consolidates the two changes this cycle:
- Windows ARM64 binding restored (npm Support unblocked the name).
- Benchmark CPU label corrected (Ryzen 9 9950X, not 7950X3D).
55 lines
1.5 KiB
Markdown
55 lines
1.5 KiB
Markdown
---
|
|
name: Performance regression
|
|
about: Report a measurable slowdown, memory blowup, or throughput drop.
|
|
title: "[Perf] <indicator / API> regressed in <version>"
|
|
labels: ["performance", "regression", "triage"]
|
|
assignees: []
|
|
---
|
|
|
|
## Summary
|
|
|
|
<!-- Which code path got slower, by how much, and since when? -->
|
|
|
|
## Affected code path
|
|
|
|
- Indicator / API: `e.g. EMA.update`
|
|
- Binding: `Rust / Python / Node / Wasm`
|
|
- Hot loop or one-shot call?
|
|
|
|
## Versions compared
|
|
|
|
| Version | Throughput / latency / memory | Notes |
|
|
| -------- | ----------------------------- | ----- |
|
|
| `0.4.1` | `e.g. 12.3 ns/iter` | baseline (Good) |
|
|
| `0.4.2` | `e.g. 38.7 ns/iter` | regressed |
|
|
|
|
## Benchmark / reproducer
|
|
|
|
<!--
|
|
Paste the criterion / pytest-benchmark / hyperfine command and its output.
|
|
For one-off measurements, include the timing snippet inline.
|
|
-->
|
|
|
|
```bash
|
|
cargo bench --bench ema -- --save-baseline new
|
|
```
|
|
|
|
```
|
|
ema/update time: [38.5 ns 38.7 ns 38.9 ns]
|
|
change: [+213.4% +214.8% +216.1%] (p = 0.00 < 0.05)
|
|
Performance has regressed.
|
|
```
|
|
|
|
## Hardware / environment
|
|
|
|
| Field | Value |
|
|
| ------------ | -------------------------------------- |
|
|
| CPU | `e.g. Ryzen 9 9950X, AVX2 + AVX512` |
|
|
| OS / arch | `e.g. Linux 6.8 x86_64` |
|
|
| Toolchain | `rustc 1.x.y` |
|
|
| Build flags | `RUSTFLAGS=...`, `--release`, profile |
|
|
|
|
## Suspected cause
|
|
|
|
<!-- Optional. Link the commit / PR if you've bisected it. -->
|