Skip to main content

wax-performance-audit

Benchmarking and performance auditing for the Wax repo. Use when running or interpreting Wax benchmarks, diagnosing CPU, memory, or I/O bottlenecks, or investigating Swift 6.2 concurrency issues such as Sendable, actor isolation, `@unchecked Sendable`, task-group fan-out, and data races. Use when this capability is needed.

Ir para a instalação

Informações da origem

Repositório
tomevault-io/tomes
Última atividade na origem
23 de julho de 2026 às 21:48
Idioma detectado do SKILL.md
inglês
Estrelas
1
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
wax-performance-audit
description
Benchmarking and performance auditing for the Wax repo. Use when running or interpreting Wax benchmarks, diagnosing CPU, memory, or I/O bottlenecks, or investigating Swift 6.2 concurrency issues such as Sendable, actor isolation, `@unchecked Sendable`, task-group fan-out, and data races. Use when this capability is needed.
metadata
{"author":"christopherkarani"}
# Wax Performance Audit ## Overview Use this skill to benchmark Wax changes, isolate the hottest code path, and separate real regressions from noisy samples. The repo builds with Swift 6.1 and `StrictConcurrency` enabled, so audit for Swift 6.2 concurrency risks without assuming 6.2-only language mode. ## Workflow 1. Name the symptom precisely: latency regression, memory growth, file bloat, or Swift concurrency diagnostics. 2. Pick the narrowest benchmark or test file that exercises the path. 3. Run a baseline and candidate with the same environment and scale. 4. Collect wall time plus memory or file-growth metrics when the issue is not purely CPU-bound. 5. Inspect the smallest relevant actor boundary, task group, cache, or I/O path. 6. Report the evidence, the bottleneck, and the smallest safe fix. ## Benchmark Selection Use [`references/benchmark-workflow.md`](references/benchmark-workflow.md) for the command matrix, environment flags, and benchmark map. Prefer these repo entry points when they match the symptom: - `Tests/WaxIntegrationTests/RAGBenchmarkSupport.swift` - `Tests/WaxIntegrationTests/RememberDedupBenchmarks.swift` - `Tests/WaxIntegrationTests/StoreBloatBenchmarks.swift` - `Tests/WaxIntegrationTests/RAGBenchmarks.swift` - `Tests/WaxIntegrationTests/RAGBenchmarksMiniLM.swift` - `Tests/WaxIntegrationTests/BatchEmbeddingBenchmark.swift` - `Tests/WaxIntegrationTests/SessionRuntimeStatsBenchmarks.swift` - `Tests/WaxIntegrationTests/WALCompactionBenchmarks.swift` - `Tests/WaxIntegrationTests/HandoffLookupBenchmarks.swift` - `Tests/WaxIntegrationTests/PayloadLivenessBenchmarks.swift` - `Tests/WaxIntegrationTests/SurrogateSourceBenchmarks.swift` - `Tests/WaxIntegrationTests/AccessStatsBootstrapBenchmarks.swift` - `Tests/WaxIntegrationTests/ConcurrencyStressTests.swift` - `Tests/WaxIntegrationTests/MemoryOrchestratorTests.swift` - `Tests/WaxArcticTests/ArcticPerformanceBenchmark.swift` - `Tests/WaxCoreTests/ReadWriteLockTests.swift` - `Tests/WaxCoreTests/AsyncMutexTests.swift` ## Bottleneck Triage - CPU: look for repeated serialization, unnecessary sorting, extra actor hops, and oversized batch work. - Memory: compare RSS, allocated bytes, dead payload bytes, TOC growth, and frame count. - I/O: inspect WAL compaction, reopen cost, and close-time rewrite work. - Embeddings: check compute unit selection, batch sizing, and warmup or prewarm behavior. - Noise: rerun if caches are cold, an external compiler/service is active, or the benchmark has low sample counts. - Gated skips: confirm the env flag actually enabled the lane before treating a skip or pass as evidence. - Harness plumbing: `measureAsync` in `RAGBenchmarkSupport.swift` uses `DispatchSemaphore` plus `Task` because XCTest measurement is synchronous; do not confuse that with production concurrency. - ANE/GPU: CPU-only benchmark paths are intentional in some suites, and warm p95/p99 values can be noisy when `ANECompilerService` or similar background work is active. ## Swift 6.2 Concurrency Use [`references/concurrency-checklist.md`](references/concurrency-checklist.md) when the change touches actors, task groups, `Sendable`, or `@unchecked Sendable`. Default checks: - Trace every value that crosses an actor boundary. - Prefer `@Sendable` closures that capture immutable values. - Treat `@unchecked Sendable` as a deliberate exception, not a default. - Watch task groups for hidden fan-out that increases memory pressure. - Keep blocking I/O off actor executors. - Verify `@MainActor` crossings in UI-adjacent or Photos code. - Treat `@preconcurrency` interop and `@unchecked Sendable` around CoreML, GRDB, Photos, and tokenizer internals as review hotspots, not automatic bugs. ## Reporting When you finish, state: - the benchmark or test you ran, - the before/after evidence, - whether the regression was CPU, memory, I/O, or concurrency-related, - and the exact file or subsystem that caused it. --- > Source: [christopherkarani/Wax](https://github.com/christopherkarani/Wax) — distributed by [TomeVault](https://tomevault.io). <!-- tomevault:4.0:skill_md:2026-06-30 -->
Ver no GitHub