Profiler
AbraGen Profiler je profilovací nástroj, který je schopen měřit čas provádění některých vybraných metod.
Nástroj je možné spustit klávesovou zkratkou Ctrl+Alt+Shift+F12. Profiler je taktéž k dispozici v okně otevřeného rozhranní.
Příklad vzhledu profileru
Je určen především servisním konzultantům servisní sítě výrobce a vývojářům.
Příkladem využití může být např. situace, kdy je potřeba odhalit, proč je u konkrétního klienta pomalá skladová uzávěrka apod.
V horní liště nástroje je k dispozici několik funkcí:
Název | Kl. | Popis |
---|---|---|
Start Stop |
ctrl+F1
ctrl+F2 |
Pomocí funkce Start, resp. Stop uživatel spustí, resp. zastaví profilování. Profilování je inkrementální a dokud se neprovede zobrazení naměřených statistik pak se naměřené časy sčítají. Profilování lze také spustit při startu systému ABRA Gen pomocí parametru spuštění ProfilingAutoStart. Měření musí začít a skončit ve stejném bodě. Pokud tedy např. chceme změřit jak dlouho trvá tisk reportu, je třeba začít měření buď v agendě a vrátit se zpět do téže agendy nebo začít měření v malém číselníku tiskových sestav a po tisku se vrátit zpět do téhož malého číselníku (tiskneme přes funkci preview pomocí zkratky Ctrl+P). V opačném případě zobrazí Profiler chybu "list index out of bounds". Dočasná data si profiler nejdříve zapisuje do paměti a po překročení výrobcem dané hranice (která není velká) se data přepíší do dočasného souboru na disk a paměť se uvolní pro další zápis. Tudíž je možné profilovat i operace, které generují větší množství dat, aniž by došlo ke kolizi díky zaplnění paměti. |
Show statistics | ctrl+F3 | Provede export statistik naměřených časů, tj. dojde k jejich zobrazení. Zároveň se tím také vynuluje vnitřní počítadlo a při opětovném spuštění profilování se počítá od nuly. |
Open | ctrl+O | Umožňuje načíst naměřené statistiky ze souboru s příponou *.ap. |
Save | ctrl+S |
Umožňuje uložit naměřené statistiky do souboru s příponou *.ap. Ukládají se vždycky všechny naměřené statistiky, bez ohledu na případné nastavení filtru. |
Nástroj zobrazuje seznam metod, resp. jejich skupin a případně i informace o voláních. Vše je rozděleno podle vláken, mezi kterými se je možné přepínat v panelu Threads.
Nad každým oknem s naměřenými statistikami je možné stiskem pravého tlačítka myši vyvolat lokální nabídku a výsledek zkopírovat do schránky nebo uložit do souboru ve formátu CSV.
Název | popis |
---|---|
Group By Area, Class, Method | Pohled seskupinovaný dle oblastí, tříd a metod. V tomto pohledu je zobrazen také detail volání, pokud je k dispozici. Jedná se o určité užitečné části kódu, např. SQL dotazy. |
Group By Area, Method | Pohled seskupinovaný dle oblastí a metod. |
Group By Area | Pohled seskupinovaný dle oblastí. |
Show callers | Zobrazí okno s nadřazenými volajícími, které volají aktuální řádek. |
Show children calls | Zobrazí okno vnořených volání, které volá aktuální řádek. Při pokliku na řádek vnořeného volání se kurzor označí toto vnořené volání v hlavním seznamu. |
Název | popis |
---|---|
method |
Název metody. Prefix před jejím názvem označuje oblast, do které metoda patří. Tyto oblasti jsou nadefinované interně a umožňují snazší orientaci mezi metodami. Oblasti jsou odlišené barvou. Výčet oblastí je následující:
Při vyhledávání problémů je vhodné se nejprve zaměřit na oblast E, která by neměla vůbec nastávat, dále SCR, SG, UF a efektivitu SQL dotazů. |
w/children | Celkový čas v sekundách s vnořenými voláními. Jedná se o součin sloupců calls a avg. Uživatel typicky seřadí seznam dle hodnot ve sloupci w/children a postupuje podle nejdelších časů. Podezřelé bývají např. ty části kódu, které se volají často a trvají dlouho. |
wo/children | Čas v sekundách bez vnořených volání. Jde o nepokryté oblasti, kterých by v budoucích verzích mělo ubývat. |
calls | Počet volání. |
min | Nejkratší naměřené volání. |
max | Nejdelší naměřené volání. |
avg | Průměrný čas volání. |
ThreadId | ID vlákna. |
Hodnoty v seznamu je možné:
- Řadit - poklikem myši na záhlaví sloupce
-
Filtrovat - s využitím položky Filter (prvek typu skrytý seznam) umístěné v pravé horní části uživatelského rozhraní
Do položky Filter je možné zadávat regulární výrazy, které se porovnávají s obsahem sloupce method. Pokud je položka Filter prázdná, zobrazí se všechny záznamy (volané metody). Pokud regulární výraz není správně sestaven (obsahuje syntaktické chyby), nezobrazí se žádné záznamy.