Profiler
AbraGen Profiler je profilovací nástroj, který je schopen měřit čas provádění některých vybraných metod.
 Základní popis
Základní popis
                                                        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.
 Popis funkcí
Popis funkcí
                                                        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. | 
 Popis skupin a pohledů
Popis skupin a pohledů
                                                        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. | 
 Popis sloupců
Popis sloupců
                                                        | 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. 
