Skip to content

Commit 8a7f9cd

Browse files
committed
docs: Integrate charts demonstrating performance improvement in release post
1 parent cd86993 commit 8a7f9cd

File tree

3 files changed

+65
-1
lines changed

3 files changed

+65
-1
lines changed

website/blog/.cursor/rules/blog-posts.mdc

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,36 @@ Note: Some imports (like `PkgTabs`) may appear after truncate if only used in Mi
104104

105105
**Embedded demos:** Use `<StackBlitz app="app-name" file="path/to/file.tsx" />`
106106

107+
## Performance Improvements
108+
109+
When documenting performance gains:
110+
111+
1. **Lead with narrative context** - Briefly explain *what* was optimized (caching, code paths, algorithms)
112+
2. **Quantify with multipliers** - Use concrete metrics like "2x" or "16x improvement"
113+
3. **Link evidence** - Reference the PR implementing the optimization and relevant docs
114+
4. **Visualize with mermaid chart** - Use `xychart-beta` bar chart comparing operations:
115+
116+
```mermaid
117+
xychart-beta
118+
title "Performance vs vX.Y"
119+
x-axis ["operation1", "operation2", "operation3"]
120+
y-axis "Percentage gain" 0 --> MAX_VALUE
121+
bar [new_values]
122+
bar [baseline_100s]
123+
```
124+
125+
5. **Include benchmark links** - End with centered links to live benchmarks and source:
126+
127+
```md
128+
<center>
129+
130+
[Benchmarks over time](https://reactive.github.io/data-client/dev/bench/) | [View benchmark](https://github.com/reactive/data-client/tree/master/examples/benchmark)
131+
132+
</center>
133+
```
134+
135+
Keep the baseline bar at 100 for each operation to show relative improvement clearly.
136+
107137
## Conventions
108138

109139
- **Each change must include:** a link to the PR (or commit if no PR) and relevant doc links

website/blog/2024-07-13-v0.14-release-announcement.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,21 @@ Internal schema interface changes provide a **10% normalization performance boos
207207

208208
Using `Map` instead of plain objects for entity storage provides up to **32% faster lookups** for large datasets. [#3390](https://github.com/reactive/data-client/pull/3390)
209209

210+
```mermaid
211+
xychart-beta
212+
title "Performance vs v0.13"
213+
x-axis ["normalize", "denormalize (large)", "denormalize (small)"]
214+
y-axis "Percentage gain" 0 --> 140
215+
bar [110, 132, 115]
216+
bar [100, 100, 100]
217+
```
218+
219+
<center>
220+
221+
[Benchmarks over time](https://reactive.github.io/data-client/dev/bench/) | [View benchmark](https://github.com/reactive/data-client/tree/master/examples/benchmark)
222+
223+
</center>
224+
210225
## Schema/Data Modeling
211226

212227
Schema APIs reduce boilerplate for common patterns while enabling more advanced use cases. Client-side joins now work across arbitrary entities (not just nested relationships), dynamic invalidation handles server-only deletion logic, and sensible defaults like `Entity.pk()` using `id` eliminate repetitive code.

website/blog/2025-01-XX-v0.15-vue-support-collection-remove.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import Link from '@docusaurus/Link';
1919
- [mockInitialState()](/blog/2025/01/XX/v0.15-vue-support-collection-remove#mockinitialstate) for simpler test setup
2020

2121
**Performance:**
22-
- 10-20% improvement for get/denormalize operations
22+
- [10-20% improvement](/blog/2025/01/XX/v0.15-vue-support-collection-remove#performance) for get/denormalize operations
2323

2424
**[Breaking Changes:](/blog/2025/01/XX/v0.15-vue-support-collection-remove#migration-guide)**
2525

@@ -224,6 +224,25 @@ import {
224224
- `collapseFixture` - Resolves fixture responses (handles function responses)
225225
- `createFixtureMap` - Separates fixtures into static map and interceptors
226226

227+
## Performance
228+
229+
Removing ImmutableJS auto-detection overhead and optimizing denormalization code paths provides a **10-20% improvement** for get/denormalize operations. [#3421](https://github.com/reactive/data-client/pull/3421), [#3468](https://github.com/reactive/data-client/pull/3468)
230+
231+
```mermaid
232+
xychart-beta
233+
title "Performance vs v0.14"
234+
x-axis ["get large", "get small", "denormalize"]
235+
y-axis "Percentage gain" 0 --> 125
236+
bar [120, 115, 110]
237+
bar [100, 100, 100]
238+
```
239+
240+
<center>
241+
242+
[Benchmarks over time](https://reactive.github.io/data-client/dev/bench/) | [View benchmark](https://github.com/reactive/data-client/tree/master/examples/benchmark)
243+
244+
</center>
245+
227246
## Other Improvements
228247

229248
- Fix `getPage` types when paginationField is in body

0 commit comments

Comments
 (0)