Statistiky Třídy¶
Analýza profiler dat se provádí pomocí Stats
třídy.
classpstats.
Stats
(*názvy souborů nebo profil, stream=sys.stdout)¶
konstruktoru třídy vytvoří instanci „statistiky objekt“ z afilename (nebo seznam souborů) nebo z Profile
instance. Výstup bude vytištěn do proudu určeného proudem.
soubor vybraný výše uvedeným konstruktorem musí být vytvořen odpovídající verzí profile
nebo cProfile
. Chcete-li být konkrétní,není tam žádný soubor zaručena kompatibilita s budoucími verzemi thisprofiler, a není tam žádný kompatibilitu s soubory vytvořené otherprofilers, nebo stejné profiler spuštění na jiný operační systém. Pokud je k dispozici několik souborů, Všechny statistiky pro identické funkce budou sloučeny, aby bylo možné zvážit celkový pohled na několik procesů v jedné zprávě. Pokud je třeba kombinovat další soubory s daty v existujícím objektu Stats
, lze použít metodu add()
.
namísto čtení dat profilu ze souboru lze jako zdroj dat profilu použít objekt cProfile.Profile
nebo profile.Profile
.
Stats
objekty mají následující metody:
strip_dirs
()¶
Tato metoda pro Stats
class odstraní všechny vedoucí pathinformation z názvů souborů. To je velmi užitečné při snižování velikostitisk, aby se vešly do (v blízkosti) 80 sloupců. Tato metoda se modifikujeobjekt a odstraněné informace jsou ztraceny. Po provedení operace astrip se má za to, že objekt má své záznamy v „náhodném“ pořadí, jako tomu bylo těsně po inicializaci a načtení objektu.Pokud strip_dirs()
způsobí, že dva názvy funkcí, aby beindistinguishable (jsou na stejném řádku, stejným názvem, andhave stejný název funkce), pak se statistiky pro tyto dva entriesare nahromaděné do jediné položky.
add
(*názvy souborů)¶
metoda Stats
class hromadí další profilinginformation do aktuální profilování objektu. Jeho argumenty se týkají názvy souborů vytvořené pomocí odpovídající verzi profile.run()
nebo cProfile.run()
. Statistiky pro identicky pojmenované (re: soubor, řádek,Název) funkce jsou automaticky kumulovány do jedné funkcestatistiky.
dump_stats
(názvem)¶
Uložit data načtený do Stats
objekt do souboru namedfilename. Soubor je vytvořen, pokud neexistuje, a je přepsánpokud již existuje. To je ekvivalentní metodě stejného jména třídách profile.Profile
a cProfile.Profile
.
sort_stats
(*klíče)¶
tato metoda modifikuje objekt Stats
tříděním podle dodaných kritérií. Argument může být buď řetězec nebo SortKeyenum identifikace na základě třídění (např.: 'time'
'name'
SortKey.TIME
nebo SortKey.NAME
). Argument SortKey enums haveadvantage nad argumentem string v tom, že je robustnější a méně náchylný k chybám.
Pokud je zadáno více klíčů, použijí se další klíče jako sekundární kritéria, pokud existuje rovnost ve všech klávesách vybraných dříve. Například sort_stats(SortKey.NAME, SortKey.FILE)
seřadí položky podle jejich názvu funkce a vyřeší všechny vazby (identické názvy funkcí) tříděním podle názvu souboru.
pro řetězcový argument lze použít zkratky pro libovolné názvy klíčů, pokud je zkratka jednoznačná.
The following are the valid string and SortKey:
Valid String Arg |
Valid enum Arg |
Meaning |
---|---|---|
|
SortKey.CALLS |
call count |
|
SortKey.CUMULATIVE |
cumulative time |
|
N/A |
cumulative time |
|
N/A |
file name |
|
SortKey.FILENAME |
file name |
|
N/A |
file name |
|
N/A |
call count |
|
SortKey.PCALLS |
primitive call count |
|
SortKey.LINE |
line number |
|
SortKey.NAME |
function name |
|
SortKey.NFL |
name/file/line |
|
SortKey.STDNAME |
standard name |
|
SortKey.ČAS, |
interní čas |
|
N/A |
interní čas |
Všimněte si, že všechny druhy na statistiky jsou v sestupném pořadí (umístění mosttime náročné předměty jako první), kde jako jméno souboru a číslo řádku searchesare ve vzestupném pořadí (abecedně). Jemný rozdíl meziSortKey.NFL
SortKey.STDNAME
je, že standardní jméno je asort název, jak tisknout, což znamená, že vložený řádek numbersget ve srovnání zvláštním způsobem. Například linky 3, 20, a 40 by (pokud názvy souborů byly stejné), se objeví v řetězci, aby 20, 3 a 40.V kontrastu, SortKey.NFL
číselné porovnat čísla řádku.Ve skutečnosti, sort_stats(SortKey.NFL)
je stejné jakosort_stats(SortKey.NAME, SortKey.FILENAME, SortKey.LINE)
.
Pro zpětné kompatibility důvodů, číselné argumenty -1
0
1
2
jsou povoleny. Jsou interpretovány jako 'stdname'
'calls'
'time'
'cumulative'
, resp. Pokud je použit tento formát oldstyle (numerický), bude použit pouze jeden klíč řazení (numerický klíč) a další argumenty budou tiše ignorovány.
novinka ve verzi 3.7: přidána SortKey enum.
reverse_order
()¶
Tato metoda pro Stats
class obrátí pořadí základů seznam rámci objektu. Všimněte si, že ve výchozím nastavení vzestupně vsdescending pořadí je správně vybrána na základě klíče řazení volby.
print_stats
(*omezení)¶
Tato metoda pro Stats
class vytiskne zprávu, jak uvádí profile.run()
definice.
pořadí tisku je založen na poslednísort_stats()
operace provádí na objekt (předmět tocaveats v add()
strip_dirs()
).
poskytnuté argumenty (pokud existují) lze použít k omezení seznamu na významné položky. Zpočátku je seznam považován za kompletní saduprofilových funkcí. Každé omezení je buď celé číslo (pro výběr počtu řádků), nebo desetinný zlomek mezi 0,0 a 1.0 včetně (toselect procento řádků), nebo řetězec, který bude interpretován jako aregular výraz (vzor odpovídá standardní název, který je vytištěn).Pokud je stanoveno několik omezení, použijí se postupně.Například:
print_stats(.1, 'foo:')
nejprve by se omezit tisk na prvních 10% ze seznamu, a pak jen printfunctions, které byly součástí souboru .*foo:
. Naproti tomu příkaz:
print_stats('foo:', .1)
omezit seznam na všechny funkce, které mají názvy souborů .*foo:
,a pak pokračovat, aby se tisknout pouze prvních 10% z nich.
print_callers
(*restrictions)¶
tato metoda pro třídu Stats
vypíše seznam všech funkcí, které se nazývají každá funkce v profilované databázi. Pořadí je stejné jako u print_stats()
a identická je i definice omezujícího argumentu. Každý volající je ohlášen na vlastní lince. Formát se mírně liší v závislosti na theprofiler, který produkoval statistiky:
-
profile
, číslo se zobrazí v závorkách po každém callerto ukazují, kolikrát tento konkrétní byl hovor uskutečněn. Pro větší pohodlí, asekundové číslo bez závorek opakuje kumulativní čas strávený vfunkce vpravo. -
cProfile
, každý volající je předcházet tři čísla: počet krát tento konkrétní hovor, a celkový andcumulative časy strávené v aktuální funkci, když byla vyvolána tomuto konkrétnímu volajícímu.
print_callees
(*omezení)¶
Tato metoda pro Stats
class vytiskne seznam všech functionthat byli povoláni do uvedené funkce. Kromě tohoto zvratu pro orientaci hovorů (re: tzv vs volal), argumenty andordering jsou totožné s print_callers()
metoda.
get_stats_profile
()¶
Tato metoda vrací instanci StatsProfile, který obsahuje mappingof názvy funkcí do instance FunctionProfile. Každý FunctionProfileinstance drží informace týkající se funkce profilu, například jak dlouho funkci vzal běžet, kolikrát to bylo voláno, atd…
Nový ve verzi 3.9: Přidána následující dataclasses: StatsProfile, FunctionProfile.Přidána následující funkce: get_stats_profile.