Dotazy v GraphQL zbytečně brzdí: kde se ztrácí výkon
Typická chyba je snažit se „to rozchodit". Při prochladnutí se svaly třesou a spotřebovávají energii, kterou nemají. Další chybou je rozdělat oheň a čekat, že se to samo spraví — rozdělávání ohně s necitlivými prsty je pomalé a riskantní. Pokud se stav do dvaceti minut po převlečení a zahřátí nezlepší, nebo se zhorší, túru ukončete. Sestup do nižší nadmořské výšky a do závětří je nejúčinnější léčba. Cesta dolů má být pomalá a kontrolovaná, ne závod.
Pokud jste prošli zdroj, kabely, ovladač i délku pásku a problém trvá, změřte odběr klešťovým multimetrem nebo změřte úbytek napětí na konci pásku. Rozdíl větší než zlomek voltu ukazuje na příliš tenké vodiče nebo příliš dlouhý úsek. V tom případě pomůže napájet pásek z obou stran nebo použít silnější vodiče. Teprve když jsou všechny tyto kroky v pořádku a pásek stále zhasíná, je pravděpodobně vadný samotný pásek nebo jeho řídicí čip.
Světlo a zvuk rozhodují víc než barva st�
Bočnice by měla končit buď těsně nad podlahou, nebo s jasně zamýšlenou mezerou. Pokud sahá až k podlaze, musí být z materiálu, který snese vlhkost při mytí a nezadrhává se o ni. Dřevo bez úpravy nasává vodu a během roku se roztahuje, takže se bočnice začne dotýkat podlahy a časem ji poškrábe. Lamino nebo lakovaný povrch je praktičtější, ale i ten potřebuje ochranu spodní hrany. Mezera do dvou centimetrů vypadá jako úmysl, vše nad tři centimetry už působí jako nedodělek.
Optimalizace není jednorázový úkol. Sledujte počet resolverových volání, dobu odezvy a velikost odpovědí průběžně a porovnávejte je po každé změně schématu. Právě změny schématu bývají spouštěčem regresí — přidání pole, které se volá ve smyčce, umí vrátit výkon o několik úrovní zpět.
Jak postupovat při hledání závady krok za krokem Začněte odpojením pásku od zdroje a změřte napětí naprázdno. Potom připojte jen krátký kus pásku, například půl metru, a sledujte, zda svítí. Tím oddělíte problém zdroje od problému dlouhého pásku. Dále zkontrolujte propojovací kabely a konektory. Uvolněný kontakt nebo přerušený vodič se projeví stejně jako slabý zdroj. Pokud máte ovladač, vyzkoušejte pásek bez něj, připojený přímo na zdroj. Tím vyloučíte chybu v regulaci.
U pásků s adresovatelnými diodami bývá příčinou špatné datové vedení nebo společná zem. Datový vodič musí být propojený správně a zem musí být společná pro zdroj i ovladač. Přerušený datový signál způsobí, že první dioda zůstane svítit a zbytek zhasne, nebo pásek problikne a zhasne celý. Zkontrolujte také směr zapojení, protože mnoho pásků má označený vstup a výstup a záměna způsobí přesně tento projev.
LED pásek, který po zapnutí na okamžik problikne a pak zhasne, obvykle neznamená vadný pásek, ale problém s napájením nebo řízením. Než cokoli vyměníte, zkontrolujte napětí na výstupu zdroje a na vstupu pásku. Multimetr připojte přímo na svorky a změřte stejnosměrné napětí při zapnutém stavu. Pokud napětí spadne téměř k nule ve chvíli, kdy pásek začne odebírat proud, zdroj je přetížený nebo vadný. Pokud zůstává stabilní, hledejte chybu dál v pásku nebo v ovladači.
Skryté úložiště rozhoduje víc než velikost sto
Nezapomínejte na teplotu. Pásek, který se přehřívá, může mít tepelnou ochranu ve zdroji nebo v ovladači. Dotkněte se pásku po několika minutách provozu. Pokud je výrazně horký, snižte délku napájeného úseku nebo přidejte napájení z obou stran. Dlouhé pásky napájené jen z jednoho konce mají na druhém konci velký úbytek napětí, což se projeví slabým svitem a nestabilitou.
Nejčastější příčinou je poddimenzovaný napájecí zdroj. LED pásky odebírají proud podle délky a hustoty diod, a zdroj s malou rezervou se při zapnutí zachová přesně takto: krátce dodá proud, ochrana ho vypne a pásek zhasne. Spočítejte odběr z údajů na pásku a porovnejte ho s výkonem zdroje. Pokud se hodnoty blíží maximu zdroje, vyměňte ho za silnější. Pozor na levné zdroje, které udávaný výkon nezvládají trvale.
Nezapomínejte ani na to, co klient skutečně použije. Server může vracet jen pole, která jsou v dotazu, ale klient často sestavuje dotazy dynamicky a posílá jich víc, než potřebuje. Pravidelná kontrola dotazů v produkci odhalí vzory, které zbytečně nafukují odpovědi. Stejně tak pomáhá omezit počet položek v seznamech už na úrovni dotazu, ne až na klientovi.
Nejčastější příčinou pomalého GraphQL není databáze ani síť, ale dotaz, který si vyžádá víc dat, než je potřeba. Klient posílá fragmenty „pro jistotu", vývojář je nechá projít a resolver je ochotně naplní. Výsledkem je N+1 problém v podobě desítek dotazů na databázi, i když stačil jeden. Prvním krokem je měření: zapněte trasování resolverů a podívejte se, kolik dotazů vzniká na jeden příchozí požadavek. Bez tohoto čísla ladíte naslepo.