Бенчмарки Vapor 1.2.5
Примерно месяц назад я прогонял бенчмарки для серверных Swift-фреймворков. Вчера я обновил свой проект до новой версии Vapor — 1.2.5. Раньше использовал 1.1.11.
Одно из самых важных изменений в Vapor 1.2.x — то, что Vapor теперь использует неблокирующий сервер.
Сегодня я решил прогнать новый бенчмарк проекта, обновлённого до Vapor 1.2, и результаты меня удивили. Он не только быстрее версии 1.1.x — он сравнялся с результатами Node.js!
Vapor vs. Node.js
Мой сервер:
- 2 ГБ RAM
- 1 ядро CPU
- SSD
- 125 Мбит/с исходящего трафика
- Ubuntu 16.10
- CouchDB
Бенчмарк с другого сервера запускался так:
wrk -t4 -c20 -d5m https://my_url
API просто берёт данные из CouchDB и отдаёт их как JSON.
Всего запросов
Запросов в секунду
Средняя задержка
Эти результаты выглядят гораздо лучше предыдущих, так что я уверен — бэкенд на Swift может быть хорошим выбором. Последний вопрос для меня сейчас — потребление памяти. После бенчмарков Vapor вырос с 13,4 МБ до 59,1 МБ. Возможно, у меня где-то утечки в коде, посмотрим.