advanced
Fastify performance model
Рассуждайте о Fastify performance через schema-based serialization, low overhead routing, plugin scoping и measurement.
Fastify оптимизирует HTTP hot path: schema-based response serialization вместо generic `JSON.stringify`, router на low-overhead radix tree, encapsulation plugins ограничивает scope lookup decorators. Бенчмарки полезны, но мерьте свою нагрузку.
fastify.get('/users/:id', {
schema: {
params: { type: 'object', properties: { id: { type: 'string' } } },
response: {
200: {
type: 'object',
properties: {
id: { type: 'string' },
email: { type: 'string' },
},
},
},
},
}, handler);
Прирост производительности требует response schemas — без них Fastify уходит на более медленные пути. Избегайте sync CPU work в handlers; hooks на hot routes — экономно. `@fastify/compress` и logging добавляют latency — осознанно.
На интервью: почему schema serialization быстрее manual JSON, когда компромисс Fastify vs Express важен (throughput-sensitive APIs), смена framework без profiling — слабая инженерия.
Типовые ошибки: «Fastify всегда быстрее» без response schemas, тяжёлый per-request logging, блокировка event loop в handlers.
Чеклист:
- Response schemas на high-traffic routes.
- Профилирование до выбора framework ради скорости.
- Async non-blocking handlers.
- Scope plugins для меньшего overhead decorators.