Диагностика и устранение проблем производительности Convex: hot-path reads, write contention, оптимизация subscriptions. Конкретные метрики и исправления.
npx -y skills add get-convex/agent-skills --skill convex-performance-audit --agent claude-codeДиагностика и устранение проблем производительности в приложениях Convex — по одному классу проблем за раз.
npx convex insights --details сообщает о высоких bytes read, documents read или OCC conflicts.npx convex insights --details. При необходимости добавьте --prod, --preview-name или --deployment-name.| Сигнал | Справочный файл |
|---|---|
| Высокие bytes/docs read, JS-фильтрация, ненужные join'ы | references/hot-path-rules.md |
| OCC-конфликты, write contention, повторные попытки мутаций | references/occ-conflicts.md |
| Высокое количество подписок, медленные обновления UI | references/subscription-cost.md |
| Таймауты функций, превышение размера транзакций | references/function-budget.md |
| «Просто медленно» без конкретного сигнала | Начните с references/hot-path-rules.md |
Выберите один конкретный пользовательский флоу из реального проекта. Запишите: точки входа функций; клиентские вызовы useQuery, usePaginatedQuery, useMutation; таблицы чтения и записи; является ли путь high-read, high-write или обоими.
Для каждой функции на пути: трассируйте каждый ctx.db.get() и ctx.db.query(); каждый ctx.db.patch(), ctx.db.replace(), ctx.db.insert(); внешние key-поиски, JS-side фильтрацию и полные чтения документов. В Convex каждое лишнее чтение увеличивает нагрузку на транзакцию, а каждая запись может инвалидировать реактивных подписчиков.
Прочитайте файл, соответствующий классу проблемы. Каждый справочник содержит паттерны, примеры кода и рекомендованный порядок исправления. Не ограничивайтесь одной функцией из сигнала — трассируйте смежные читатели и писатели тех же таблиц.
Если в одной функции, затрагивающей таблицу, обнаружена проблема производительности — проверьте смежные функции на тот же паттерн. Не оставляйте один путь исправленным, а другой — на старом паттерне.