Skip to content

Commit e5c0550

Browse files
committed
docs(benchmarks): fix accuracy issues and sync with codebase
- Correct GitHub repo link (vuetifyjs/v0 → vuetifyjs/0) - Add 4 missing composables to What Gets Benchmarked table - Fix title/meta/keywords (remove "size ratings") - Update complexity detection table to match actual detectComplexity() regex - Fix example output name ("Get item by id" → "Get by id") - Fix Explorer description to reflect commented-out filter/search - Lower level from 3 to 2 (no v0 internals required) - Sort helpers to end of BenchmarkExplorer composable list
1 parent 35b806a commit e5c0550

2 files changed

Lines changed: 22 additions & 12 deletions

File tree

apps/docs/src/composables/useBenchmarkData.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,12 @@ export function useBenchmarkData (options?: UseBenchmarkDataOptions): UseBenchma
317317
if (name) {
318318
return all.filter(c => c.name === name)
319319
}
320-
return all
320+
return all.toSorted((a, b) => {
321+
const aIsComposable = /^(?:create|use)/.test(a.name)
322+
const bIsComposable = /^(?:create|use)/.test(b.name)
323+
if (aIsComposable !== bIsComposable) return aIsComposable ? -1 : 1
324+
return a.name.localeCompare(b.name)
325+
})
321326
})
322327

323328
// Build a searchable flat list for createFilter

apps/docs/src/pages/guide/fundamentals/benchmarks.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: Benchmarks - Performance Metrics and Size Ratings
2+
title: Benchmarks - Performance Metrics and Tiers
33
features:
44
order: 5
5-
level: 3
5+
level: 2
66
meta:
77
- name: description
8-
content: Understand Vuetify0 benchmark methodology, performance tiers, and size ratings. Learn what gets benchmarked and how to interpret metrics.
8+
content: Understand Vuetify0 benchmark methodology, performance tiers, and how to interpret results. Learn what gets benchmarked and how metrics are calculated.
99
- name: keywords
10-
content: vuetify0, benchmarks, performance, metrics, size ratings, ops/s, vitest bench
10+
content: vuetify0, benchmarks, performance, metrics, tiers, ops/s, vitest bench
1111
related:
1212
- /composables
1313
- /guide/fundamentals/core
@@ -35,11 +35,15 @@ Headless UI libraries must be fast—they're foundational infrastructure. v0 ben
3535
| Composable | Why It's Benchmarked |
3636
| - | - |
3737
| `createRegistry` | Foundation for all collections—performance here affects everything |
38+
| `createModel` | Value store underlying all selection—selection benchmarks depend on it |
3839
| `createSelection` | Base for all selection patterns—select, toggle, mandatory, batch |
40+
| `createNested` | Hierarchical trees with cascade—tree traversal scales with depth |
3941
| `createTokens` | Design tokens can grow large—alias resolution must scale |
4042
| `createFilter` | Search/filter on large datasets must remain responsive |
4143
| `createVirtual` | Virtual scrolling is performance-critical by definition |
44+
| `createDataTable` | Composed orchestrator—measures sorting, filtering, and pagination together |
4245
| `useDate` | Date operations are frequent in UIs |
46+
| `useProxyRegistry` | Reactive proxy for templates—shows reactivity overhead vs raw registry |
4347

4448
### Operation Categories
4549

@@ -115,17 +119,18 @@ Tiers adjust based on detected algorithmic complexity:
115119

116120
| Pattern in Benchmark Name | Complexity |
117121
| - | - |
118-
| "single item", "single query" | O(1) |
119-
| "1,000 items", "all keys" | O(n) |
120-
| "nested", "recursive" | O(n²) |
122+
| "single" or "one item/query/key" | O(1) |
123+
| Number + items/objects/entries/elements | O(n) — default for most benchmarks |
124+
| "nested" or "recursive" | O(n²) |
125+
| No pattern matched | O(n) — conservative fallback |
121126

122127
### Reading Results
123128

124129
```bash
125130
✓ createRegistry/index.bench.ts
126131
lookup operations
127-
✓ Get item by id (1,000 items) 1,234,567 ops/s
128-
✓ Get item by id (10,000 items) 1,198,432 ops/s
132+
✓ Get by id (1,000 items) 1,234,567 ops/s
133+
✓ Get by id (10,000 items) 1,198,432 ops/s
129134
```
130135

131136
- **ops/s** — Operations per second (higher is better)
@@ -195,7 +200,7 @@ Compare `createRegistry` benchmarks with `useProxyRegistry` to see the reactivit
195200

196201
## Explorer
197202

198-
Browse all benchmark results. Filter by composable, performance tier, or search for specific operations.
203+
Browse all benchmark results. Select a composable to filter, or expand groups to compare individual operations.
199204

200205
<BenchmarkExplorer />
201206

@@ -208,4 +213,4 @@ New composables should include benchmarks if they:
208213
- Have user-perceived latency (loading, transitions)
209214
- Are called frequently (every render, every keystroke)
210215

211-
See [createRegistry benchmarks](https://github.com/vuetifyjs/v0/blob/master/packages/0/src/composables/createRegistry/index.bench.ts) for the canonical example.
216+
See [createRegistry benchmarks](https://github.com/vuetifyjs/0/blob/master/packages/0/src/composables/createRegistry/index.bench.ts) for the canonical example.

0 commit comments

Comments
 (0)