После миграции своего пет-проекта с Vapor 1 на Vapor 2 я прогнал бенчмарки, чтобы сравнить производительность. Я не запускал бенчмарки на последней версии ветки 1.x (1.5.15), поэтому буду сравнивать Vapor 2.1.0 с результатами Vapor 1.2.5 из прошлого замера.

Мой сервер:

  • 2 ГБ RAM
  • 1 ядро CPU
  • SSD
  • 125 Мбит/с исходящего трафика
  • Ubuntu 16.04.2 LTS
  • CouchDB

Бенчмарк с другого сервера запускался так:

wrk -t4 -c20 -d5m https://my_url

API просто берёт данные из CouchDB и отдаёт их как JSON. Проект на Vapor собирался Swift 3.1.1.

Всего запросов

Запросов в секунду

Средняя задержка

Использование памяти

Vapor 2 примерно на 14–15% быстрее Vapor 1.2.5. И что важно — потребление памяти Vapor 1.2.5 после бенчмарков выросло с 13,4 МБ до 59,1 МБ, а Vapor 2 стартовал всего с 3,6 МБ и его потребление выросло лишь до 5,3 МБ. Очень впечатляюще.