After migrating (almost rewriting) my small project from Vapor 2 to Vapor 3 I've run benchmarks to compare performance. I didn't run benchmarks for the last version of Vapor 2.x so I will compare Vapor 2.1.0 to results of Vapor 3.1.0.
My server configuration:
- 2 GB RAM
- 1 CPU Core
- SSD
- 125 MBPS Out
- Ubuntu 16.04.2 LTS
- CouchDB
Benchmark from other server has been launched as:
wrk -t4 -c20 -d5m https://my_url
API just gets some data from CouchDB and returns it as JSON. Vapor project has been compiled with Swift 4.2.
Total requests
Requests per second
Average Latency
Memory usage
Vapor 3 has been rewritten and now it's based on Apple's NIO. It's faster than Vapor 2 but uses more memory which is not critical.
Previous benchmarks:
Benchmarks: Vapor 2 vs. Vapor 1
Benchmarks for Vapor 1.2.5
Swift Backend with CouchDB: Kitura vs. Vapor vs. Node.js