happytails.ai
Русский

Оценщик стоимости запросов GraphQL

Оцените стоимость операции GraphQL до её отправки на сервер. Найдите глубоко вложенные и умноженные выборки списков; все предположения о размерах списков будут указаны.

Принимает операцию размером до 200 000 символов, схему до 1 000 000 символов и переменные до 200 000 символов. Учитывается не более 10 000 полей и 64 уровней вложенности, размеры списков от 1 до 10 000 и стоимость полей от 0 до 1 000. Оценка выполняется в фоновом процессе браузера. Можно скачать отчёт JSON и разбор CSV. Одна операция или несколько с указанным именем операции. Фрагменты раскрываются. До 200 000 символов. Проверьте настройки перед запуском.

Ваш результат

Сообщите о проблеме или поделитесь идеей.

Оценщик стоимости запросов GraphQL
  1. Вставьте операцию GraphQL в основное поле.
  2. Вставьте схему в формате SDL или JSON интроспекции.
  3. Измените размер списка по умолчанию, аргументы среза и стоимость полей, если на сервере используются другие значения.
  4. Запустите оценку, просмотрите самые затратные участки, затем скачайте разбор JSON или CSV.

Что нужно знать

Принимает операцию размером до 200 000 символов, схему до 1 000 000 символов и переменные до 200 000 символов. Учитывается не более 10 000 полей и 64 уровней вложенности, размеры списков от 1 до 10 000 и стоимость полей от 0 до 1 000. Оценка выполняется в фоновом процессе браузера. Можно скачать отчёт JSON и разбор CSV.

Модель стоимости

Для каждого выбранного поля учитывается стоимость объекта или скалярного значения его возвращаемого типа, умноженная на размеры списков выше по дереву. Итог — сумма по раскрытым выбранным полям; поэтому повторные выборки могут завышать стоимость объединённого выполнения на сервере. __typename не учитывается. Эта модель планирования не запускает сервер, не выполняет условные директивы или вложенное содержимое списков и не задаёт серверное ограничение.

Размеры списков

Размер поля-списка определяется наибольшим аргументом среза, например first, last или limit. Если значение не задано, используются значения по умолчанию переменных операции и аргументов схемы. Если значение среза отсутствует, используется @listSize(assumedSize:), если этот параметр включён, а затем размер списка по умолчанию в модели. @cost(weight:) заменяет стоимость поля. Все вычисленные размеры должны быть целыми числами от 1 до 10 000, а веса — от 0 до 1 000. Недопустимые операции, переменные, границы и циклические фрагменты останавливают оценку с типизированной ошибкой.

Чтение отчёта

В отчёте перечислены предположения, десять самых затратных поддеревьев и полное дерево с глубиной, множителем, размером списка, собственной стоимостью и стоимостью поддерева. В CSV одна строка на путь поля. Фрагменты раскрываются в местах использования; циклический фрагмент является ошибкой проверки запроса, а не конечным предположением о стоимости.

Что можно сделать дальше