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.