happytails.ai
Norsk bokmål

Kostnadsberegning for GraphQL-spørringer

Beregn kostnaden for en GraphQL-operasjon før den når serveren. Finn dypt nøstede valg og valg som multipliseres av lister, med hver antakelse om listestørrelse dokumentert.

Godtar en operasjon på opptil 200 000 tegn, et skjema på opptil 1 000 000 tegn og variabler på opptil 200 000 tegn. Teller høyst 10 000 felt og 64 nøstingsnivåer, med listestørrelser fra 1 til 10 000 og feltkostnader fra 0 til 1 000. Beregningen kjøres i nettleseren i en bakgrunnsworker. Nedlastingene er en JSON-rapport og en CSV-oversikt. Én operasjon, eller flere med operasjonsnavnet angitt. Fragmenter utvides. Opptil 200 000 tegn. Se gjennom innstillingene før du kjører.

Resultatet ditt

Meld fra om et problem eller del en idé.

Kostnadsberegning for GraphQL-spørringer
  1. Lim inn GraphQL-operasjonen i hovedfeltet.
  2. Lim inn skjemaet som SDL eller introspeksjons-JSON.
  3. Juster standardstørrelsen for lister, listebegrensende argumenter og feltkostnader hvis serveren bruker andre verdier.
  4. Kjør beregningen og se gjennom de største kostnadsdriverne. Last deretter ned JSON- eller CSV-oversikten.

Dette bør du vite

Godtar en operasjon på opptil 200 000 tegn, et skjema på opptil 1 000 000 tegn og variabler på opptil 200 000 tegn. Teller høyst 10 000 felt og 64 nøstingsnivåer, med listestørrelser fra 1 til 10 000 og feltkostnader fra 0 til 1 000. Beregningen kjøres i nettleseren i en bakgrunnsworker. Nedlastingene er en JSON-rapport og en CSV-oversikt.

Kostnadsmodellen

Hvert valgt felt får objekt- eller skalarkostnaden for returtypen, multiplisert med listestørrelsene over det. Totalen er summen av de utvidede feltvalgene; gjentatte valg kan derfor overestimere serverens sammenslåtte kjøring. __typename har ingen kostnad. Denne planleggingsmodellen kjører verken en server, betingede direktiver eller innholdet i nøstede lister, og er ikke en grense som serveren håndhever.

Listestørrelser

Et listefelt får størrelsen fra det største listebegrensende argumentet, som first, last eller limit. Når en verdi utelates, brukes standardverdier for operasjonens variabler og skjemaets argumenter. Uten en listebegrensende verdi brukes @listSize(assumedSize:) hvis det er aktivert, og deretter modellens standardstørrelse for lister. @cost(weight:) erstatter kostnaden for et felt. Alle avledede størrelser må være heltall fra 1 til 10 000, og vekter fra 0 til 1 000. Ugyldige operasjoner, variabler eller grenser og sykliske fragmenter stopper beregningen med en typet feil.

Slik leser du rapporten

Rapporten viser antakelser, de ti mest kostbare undertrærne og hele treet med dybde, multiplikator, listestørrelse, egen kostnad og undertrærnes kostnad. CSV har én rad per feltsti. Fragmentreferanser utvides der de brukes; et syklisk fragment er en valideringsfeil i spørringen, ikke en antakelse om en endelig kostnad.

Nyttige neste steg