Size: a a a

GraphQL — русскоговорящее сообщество

2020 January 14

e

egoarka in GraphQL — русскоговорящее сообщество
Den
Ребят, посоветуйте пожалуйста наиболее шуструю по перформансу реализацию graphql, на node + cluster + apollo server на core i5, смог выжать ~15к rps на статической query ok : String => "OK"
заюзай кластер с pm2
источник

D

Den in GraphQL — русскоговорящее сообщество
Ок
источник

e

egoarka in GraphQL — русскоговорящее сообщество
Den
Да, замеряю, отпишу6
👍
источник

MP

Mike Podgorniy in GraphQL — русскоговорящее сообщество
всем привет! помогите с setup'ом graphql для typescript под vscode. есть схема, хочется получить тайпинги и валидации и все остальные плющки в редакторе. Apollo extension for VS Code поднялся 🙂  есть ли какой-то набор плагинов-конфигов и что сейчас считается лучшей практикой?
источник

D

Den in GraphQL — русскоговорящее сообщество
egoarka
интересно, надо лоб в лоб попробовать, на ноде умельцы тоже смогут посоревноваться, я думаю
┌──────────────────────────────────────────┬────────────┬─────────┬───────────────┐
│ Server                                   │ Requests/s │ Latency │ Throughput/Mb │
├──────────────────────────────────────────┼────────────┼─────────┼───────────────┤
│ core-graphql-jit-str                     │ 5326.2     │ 71.55   │ 32.94         │
├──────────────────────────────────────────┼────────────┼─────────┼───────────────┤
│ core-graphql-jit-buf                     │ 5143.2     │ 101.07  │ 31.81         │
├──────────────────────────────────────────┼────────────┼─────────┼───────────────┤
│ fastify-REST                             │ 4855.2     │ 52.22   │ 38.83         │
├──────────────────────────────────────────┼────────────┼─────────┼───────────────┤
│ fastify-gql+graphql-jit                  │ 4730.4     │ 79.98   │ 29.47         │
├──────────────────────────────────────────┼────────────┼─────────┼───────────────┤
это то что по ссылке выше, в кратце, рез-ты почти такие же и у меня. Но на своем тесте
Query: {
   ok: () => "OK"
 }
получил с помощью
ab -H 'User-Agent:' -T 'application/json' -c 500 -n 100000 -p post.ok http://127.0.0.1:3000/

такие данные: Requests per second:    14420.66 [#/sec] (mean)
источник

e

egoarka in GraphQL — русскоговорящее сообщество
чет у тебя latency большой, у меня такой же как в репе
-
но на го получается все-равно быстрее?
источник

D

Den in GraphQL — русскоговорящее сообщество
а на гоу результат такой Requests per second:    22761.01 [#/sec] (mean)
источник

e

egoarka in GraphQL — русскоговорящее сообщество
а в своем тесте у тебя apollo server?
источник

D

Den in GraphQL — русскоговорящее сообщество
сейчас еще попробую на ноде с cluster а потом с pm2
источник

e

egoarka in GraphQL — русскоговорящее сообщество
попробуй в свой тест запихни core-graphql-jit-str и прогони тестик
источник

D

Den in GraphQL — русскоговорящее сообщество
core-graphql-jit-str - я на базе его и создал, чтобы померять в "своих" еденицах для статического простого OK
источник

e

egoarka in GraphQL — русскоговорящее сообщество
а, хм
источник

D

Den in GraphQL — русскоговорящее сообщество
core-graphql-jit-str  +  ok: () => 'OK'  + cluster => 18 522 rps  (за счет кластера +4к)
источник

e

egoarka in GraphQL — русскоговорящее сообщество
уже поинтереснее цифра)
источник

D

Den in GraphQL — русскоговорящее сообщество
c pm2 - 17171 rps
источник

e

egoarka in GraphQL — русскоговорящее сообщество
ожидал получше результат)
источник

D

Den in GraphQL — русскоговорящее сообщество
но вообще в целом cluster и должен быть лучше, так как он изнутри приложения, а pm2 снаружи + создает load balancer, в тестах кол-во потоков было 5 и для pm2 и для node cluster, исходил из проверенного в прошлый раз оптимального N+1, где N - колво потоков проца, ну и pre warm делал)
источник

e

egoarka in GraphQL — русскоговорящее сообщество
что думаешь по тесту и если параллель с го провести?
источник

D

Den in GraphQL — русскоговорящее сообщество
на golang все ядра заюзывались, теоретический максимум на моей машине (кол-во raw http запросов по сути) - 232 K rps, а с github.com/graph-gophers/graphql-go  ~ 22.7 K rps, то есть нужно чтото думать с логикой graphql
источник

АТ

Алексей Трофимов in GraphQL — русскоговорящее сообщество
Хорошо приготовленный Go всегда лучше по скорости чем хорошо приготовленный TypeScript !
источник