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

Конфигурация моего сервера:

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

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

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

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

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

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

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

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

Vapor 3 был переписан и теперь основан на NIO от Apple. Он быстрее Vapor 2, но потребляет больше памяти, что не критично.

Предыдущие бенчмарки:
Бенчмарки: Vapor 2 vs. Vapor 1
Бенчмарки Vapor 1.2.5
Swift-бэкенд с CouchDB: Kitura vs. Vapor vs. Node.js