Skip to content

capaj/node-graphql-benchmarks

 
 

Repository files navigation

TL;DR

  • graphql-jit helps
  • apollo-server adds overhead
  • tracing resolvers kills performance
  • type-graphql adds overhead

Explanation

For further details, please check out this video.

Usage

git clone https://github.com/benawad/benchmarks
cd benchmarks
npm install
npm start

Benchmarks

duration: 5s connections: 5 pipelining: 1

Server Requests/s Latency Throughput/Mb
go-graphql 49168.0 0.01 81.68
uWebSockets-graphql+jit 13061.6 0.02 80.36
core-graphql-jit-str 9383.2 0.04 58.33
core-graphql-jit-buf 9272.8 0.04 57.65
core-graphql-jit-buf-fjs 9144.8 0.04 56.83
benzene-http 9050.4 0.04 56.69
mercurius+graphql-jit 8790.0 0.04 55.03
fastify-REST 7885.2 0.07 63.23
mercurius+graphql-compose 5355.6 0.29 33.54
express-REST 5333.2 0.16 43.10
graphql-api-koa+graphql-jit 5306.0 0.28 33.18
mercurius 5249.2 0.30 32.87
mercurius+graphql-jit+type-graphql 5040.4 0.31 31.56
express-gql 4674.0 0.35 29.56
fastify-express-graphql-jit 4658.8 0.36 1.28
fastify-express-graphql-typed-jit 4375.0 0.41 1.20
express-graphql+graphql-jit+graphql-compose 4058.0 0.48 25.67
express-graphql+graphql-jit 4038.0 0.48 25.54
graphql-api-koa 3790.2 0.74 23.70
express-graphql+graphql-jit+type-graphql 3727.0 0.99 23.57
apollo-server-koa+graphql-jit+type-graphql 3674.6 0.67 23.00
fastify-express-grapql-typed 3492.6 1.25 0.96
express-graphql 3198.6 1.27 20.22
express-graphql+graphql-compose 3138.2 1.27 19.85
express-graphql+type-graphql 3076.6 1.27 19.45
apollo-schema+async 3068.2 1.27 19.40
express-graphql-dd-trace-no-plugin 3049.8 1.27 19.28
graphql-compose+async 3010.6 1.28 19.04
type-graphql+middleware 2928.6 1.27 18.52
type-graphql+async 2777.4 1.32 17.56
type-graphql+async-middleware 2755.8 1.34 17.43
apollo-server-express 2486.2 1.48 15.80
apollo-opentracing 1700.0 2.70 10.81
express-graphql-dd-trace-less 1562.0 2.64 9.88
express-graphql-dd-trace 1530.6 2.81 9.68
apollo-server-express-tracing 1505.6 2.87 47.90
yoga-graphql-trace 185.0 30.14 0.08
apollo-server-fastify+graphql-jit 0.0 0.00 0.00
apollo-server-fastify 0.0 0.00 0.00

Prerequisites

To run all the benchmarks, you need to have go and bun in your terminal.

About

Benchmarks for different Node.js GraphQL Servers

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 86.1%
  • TypeScript 8.6%
  • Go 5.3%