Le coeur perdu – Paris

GraphQL dotazy zbytečně brzdí aplikaci: kde se ztrácí výkon

Nejčastější problém s GraphQL v produkci není špatně napsaný resolver, ale dotaz, který si vyžádá víc dat, než je potřeba. Klient pošle jeden velký dotaz, server ho s radostí vykoná a databáze dostane dvacet dotazů tam, kde by stačily dva. Než začnete cokoli optimalizovat, zapněte si měření. Bez skutečných čísel o trvání resolverů a počtu SQL dotazů na jeden požadavek ladíte naslepo. Apollo Server i další běžné implementace umí tracing a plugin pro logování; nastavte si ho nejdřív v testovacím prostředí a teprve pak sahejte do schématu.

Praktický test před nákupem: položte vedle sebe vzorek dřeva a vzorek kovu a prohlédněte je při denním světle i večer u lampy. Teplé světlo žárovky posune mosaz do oranžova a některé tmavé kovy do hněda. Dřevo a kov by měly mít podobnou teplotu odstínu — teplý dub s teplou mosazí ano, teplý dub s modravým chromem už ne. Pokud si nejste jistí, zvolte neutrální černý matný kov, ten funguje téměř se vším.

Jak přistupujeme k nábytku na míru | Vestavenky.czPrvní místo, kde výkon mizí, je N+1 problém. Resolver pole vrací seznam objektů a každý objekt si pak sám dotahuje související data jedním dotazem. Řešením je dávkování: nástroje jako DataLoader seskupí požadavky v rámci jednoho cyklu událostí a pošlou jeden dotaz s polem ID. Klíčové je vytvořit loader pro každý požadavek zvlášť, ne globálně — jinak si mezi uživateli podstrčíte data a vznikne bezpečnostní díra, která se odhalí až při auditu. Stejný princip aplikujte i na volání externích služeb.

Kabeláž je druhý typický problém. Prodlužovací kabel položený na zemi se za chvíli změní v klubko a při každém pohybu židle se rozpojí. Kabel veďte podél zdi a připevněte ho lepicími klipy; přebytečnou délku svažte páskem na suchý zip, ne gumičkou, která se rozpadne. Nabíječky nechte zapojené v jedné liště, kterou večer vypnete. Ušetříte energii a zároveň zmizí pocit, že je kancelář všude.

Vrstevnice jsou pro mnoho lidí abstraktní čáry, ale právě ony prozradí, jak strmý je svah. Pokud je přehlédneš, čeká tě nečekané převýšení nebo naopak zjistíš, že jsi v mnohem rovinatějším terénu, než jsi čekal. Nauč se číst hustotu vrstevnic: čím blíž u sebe jsou, tím prudší je svah. Také si všímej tvaru – uzavřené kruhy znamenají vrchol nebo jámu, vyduté a vypuklé linie napoví, kudy vede hřeben nebo údolí. Bez toho se snadno ztratíš i na přehledném místě.

Při montáži desek postupujte od středu k okrajům a spáry střídejte. U nerovného stropu se vyhněte přílišnému utahování šroubů, protože se desky prohnou a spáry se rozjedou. Šrouby zašroubujte tak, aby hlavička byla mírně pod povrchem, ale papír desky zůstal neporušený. Spoje přetmelte a přebruste, ale kvalitní základ je rošt, ne tmel.

Prvním signálem je barva a konzistence oleje na měrce. Po vychladnutí motoru vytáhněte měrku, otřete ji hadříkem, zasuňte zpět a znovu vytáhněte. Čerstvý olej je průsvitný a medový, starý ztmavne do hněda až černa a mezi prsty je řídký nebo naopak kašovitý. Pozor na častou chybu: tmavá barva sama o sobě neznamená, že olej musí hned ven – u moderních čisticích olejů je normální. Rozhodující je, zda je olej řídký, cítíte v něm benzín nebo v něm vidíte jemné kovové částice.

Často opomíjená věc je cache. GraphQL má jediný endpoint, takže HTTP cache na úrovni URL nefunguje. Musíte cachovat na úrovni polí nebo použít perzistované dotazy. Perzistované dotazy jsou zároveň ochrana: klient pošle hash, server vykoná jen dotazy ze seznamu schválených. Tím zablokujete ad-hoc dotazy z produkce a snížíte objem přenášených dat. Pozor ale na to, že po každé změně schématu je potřeba seznam aktualizovat, jinak klienti přestanou fungovat.

Základem je přesně určit rovinu nového podhledu. Použijte laser nebo vodováhu a vyznačte ji po obvodu místnosti. Od nejnižšího místa stropu připočtěte tloušťku roštu a desky, a teprve pak vznikne výsledná výška. Typická chyba je určit rovinu od pohledu a zjistit až při montáži, že v jednom rohu chybí centimetr. Značky si dělejte po celém obvodu, ne jen na dvou stěnách.

Hloubka dotazu a limity, které se vyplatí nastavit dřív než uživatelé Druhá past je neomezená hloubka a složitost dotazu. GraphQL umožňuje rekurzivní fragmenty, a pokud je nijak neomezíte, stačí jeden dotaz a server se zacyklí. Zaveďte analýzu dotazu před jeho vykonáním: spočítejte hloubku, počet polí a odhadněte náklady. Levné dotazy projdou, drahé odmítněte s jasnou chybou. Zároveň nastavte timeout na úrovni požadavku, ne až na databázi. Klient, který pošle agresivní dotaz, nemá blokovat ostatní.

Nakonec pamatujte, že optimalizace bez měření je jen hádání. Zaveďte si přehled o pomalých dotazech, sledujte je v čase a po každé změně ověřte, že se čísla skutečně zlepšila. GraphQL není pomalý sám o sobě — pomalé jsou dotazy, které nikdo neomezil.

Should you loved this information and you wish to receive more information relating to byt v paneláku please visit our web site.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

0
    CARRELLO
    Il tuo carrello è vuoto!Torna allo shop