Nový nástroj pro analýzu ladicích protokolů na dosah ruky

Automaticky přeloženo z Deepl

Ve verzi 4D v17 R5 jsme vylepšili protokoly ladění přidáním metod a umožněním sledovat každý proces samostatně. V této verzi R jsme postoupili o krok dále a dodali jsme nástroj pro analýzu ladicích protokolů, který vám pomůže sledovat provádění procesů. Budete moci zjistit, které procesy jsou nejvíce náročné, řetězec volání s odpovídajícím časem běhu a mnoho dalšího.

HDI: Analyzátor ladicích protokolů

V tomto příspěvku na blogu se podíváme na scénář, kdy musíme zjistit, proč dochází k pomalým odezvám z databáze obsluhující dynamické webové stránky.

Někteří uživatelé si všimli, že webové stránky jsou někdy pomalé, ale nemohou poskytnout bližší informace. Existuje několik způsobů, jak to prozkoumat, takže se na to pojďme podívat a zkusme zjistit, co se děje!

Generování ladicích protokolů

Analyzátor ladicích protokolů je založen na formátu souborů ladicích protokolů 4D v14. Chcete-li tedy aktivovat protokolování, stačí použít následující kód:
//debug logování aktivováno s parametry (volba 2), formátem souboru 4D v14 (volba 4) a odloženým zápisem (volba 8)
SET DATABASE PARAMETER
(Debug log recording;2+4+8
)

Mějte na paměti, že počínaje verzí 4D v17 R5 můžete povolit ladění pro jeden proces. Pokud máte podezření, že za zpoždění může konkrétní proces, je nyní snadné a časově méně náročné spustit protokoly ladění pouze pro tento konkrétní proces:

SET DATABASE PARAMETER (Current process debug log recording;2+4+8)

Vytvoření projektu

Analyzátor protokolů ladění spravuje projekty, což je sada souborů protokolů ladění, a relaci protokolů ladění.

Po otevření databáze se zobrazí seznam uložených projektů. Projekt můžete vytvořit pomocí tlačítka „Nový „. Je třeba vybrat složku obsahující protokoly ladění nebo vybrat soubory, které chcete analyzovat, a poté projekt pojmenovat.

Mějte na paměti, že i když je proces analýzy spuštěn preventivně, může trvat dlouho v závislosti na počtu souborů ke kontrole a procesorech ve vašem počítači.

Analýza projektu

Výběrem projektu ze seznamu se v přehledu zobrazí základní informace, jako je rozsah ladicích protokolů a analyzovaných řádků. Kliknutím na příslušná tlačítka můžete zobrazit řetězce volání projektu, statistiky a podrobnosti o projektu.

CALL CHAINS

Na obrazovce řetězce volání se zobrazuje seznam procesů s celkovou dobou provádění. Seznam je seřazen tak, aby se časově nejnáročnější procesy zobrazovaly v horní části obrazovky.

Řetězec volání procesů můžete rozšířit a zobrazit nejnáročnější operace na každé úrovni. Kliknutím na proces pomocí klávesy ALT se automaticky rozšíří nejnáročnější řetězec volání a poklepáním na operaci se přesune do průzkumníka řetězců. Výběrem úrovně v seznamu pak můžete obnovit zobrazení hierarchického seznamu na příslušné úrovni. Pro každý vybraný příkaz se zobrazí celkový počet volání, celková doba trvání a průměrná doba trvání.

Příklad:

V níže uvedeném příkladu jsme vyhledávali procesy a příkazy s největší spotřebou. Vidíme, že dokončení příkazu RELATE MANY SELECTION může trvat více než minutu, proto se podívejme do části s podrobnými informacemi a zjistěme, kde byl příkaz vyvolán.

blank

PODROBNÉ INFORMACE

Výběr časového rozsahu

Podrobná obrazovka představuje časovou osu činnosti zobrazenou po minutách. Pro zobrazení více nebo méně podrobností můžete zvětšovat nebo zmenšovat zobrazení. Můžete tak vybrat konkrétní časový rozsah, který chcete analyzovat. Posunutím hranic můžete vybrat pouze jednu nebo několik minut.

Po výběru nového rozsahu se spustí analýza a výsledky se zobrazí v dolní části obrazovky. Poukázáním na období s vysokou aktivitou máte k dispozici další způsob, jak určit pomalé procesy .

Karta SHRNUTÍ

Na kartě Souhrn se zobrazují obecné statistiky doby provádění procesů pro vybraný časový interval. Statistiky můžete sbalit výběrem procesu ze seznamu.

blank

Horní karta

Karta Top zobrazuje všechny zaznamenané operace s počtem jejich volání a celkovou dobou provádění pro vybrané procesy a časový interval. Seznam lze zmenšit pomocí filtru příkazů, metod nebo členských metod. To je další dobrý způsob, jak určit nejnáročnější příkazy, metody atd.

Podle našeho příkladu jsme vybrali časový rozsah a filtrovali podle příkazů. Zobrazí se potvrzení: příkaz RELATE MANY SELECTION je použit několikrát a zabral hodně času. Přejděme k dalšímu kroku pro podrobnější informace.

blank

Operace

Na kartě Operace se zobrazí všechny podrobné operace za jednu izolovanou minutu pro vybrané procesy. Seznam můžete zmenšit nebo jednoduše zvýraznit vyhledáním operace. Tato statistika je z výkonnostních důvodů omezena na jednu minutu, proto nezapomeňte vybrat minutu, ve které chcete zahájené operace vidět!

Tento seznam může být velmi užitečný, protože zobrazuje všechny řádky provedeného kódu. Můžete jej také seřadit podle sloupce.

Na závěr našeho příkladu jsme vyhledali příkaz RELATE MANY SELECTION , vyfiltrovali seznam a seřadili jej podle sloupce Doba trvání (aby se nejdelší volání ocitla na začátku seznamu). Zdá se, že dvě časově nejnáročnější volání jsou provedena pomocí stejného pole. Rychlým pohledem do struktury naší databáze jsme našli viníka: pole bylo třeba indexovat.

blank

Na závěr

Tento nástroj je navržen tak, aby vám pomohl najít konflikty ve vašem kódu a zlepšit výkon vaší databáze. Stažením výše uvedeného HDI si zašpiníte ruce a užijete si zábavu při zkoumání!

Avatar
• Product Owner • Damien Fuzeau se připojil k týmu 4D Product v únoru 2019. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich následný převod do funkčních specifikací. Jeho úkolem je také zajistit, aby dodávané implementace funkcí vyhovovaly potřebám zákazníků. Damien vystudoval softwarové inženýrství na University of Nantes. Ve své bývalé společnosti strávil více než 23 let, nejprve jako vývojář (objevil 4D v roce 1997) a později jako technický manažer a softwarový architekt. Tato společnost je partnerem 4D OEM a nasadila obchodní software založený na 4D pro tisíce uživatelů na stovkách serverů. Damien je tedy zvyklý na 4D vývoj a nasazení ve vícejazyčném kontextu.