Stats-klassens
analys av profileringsdata görs med klassenStats
.
klasspstats.
Stats
(*filnamn eller profil, ström=sys.stdout)
denna klass konstruktören skapar en instans av ett” statistikobjekt”från afilename (eller lista över filnamn) eller från en Profile
instans. Outputkommer att skrivas ut till den ström som anges av stream.
filen som valts av ovanstående konstruktör måste ha skapats av motsvarande version av profile
eller cProfile
. För att vara specifik, det finns ingen filkompatibilitet garanteras med framtida versioner av thisprofiler, och det finns ingen kompatibilitet med filer som produceras av otherprofilers, eller samma profiler körs på ett annat operativsystem. Omflera filer tillhandahålls kommer all statistik för identiska funktioner att samlas, så att en övergripande bild av flera processer kan övervägasi en enda rapport. Om ytterligare filer måste kombineras med data i ett existerande Stats
objekt, add()
metodkan användas.
istället för att läsa profildata från en fil kan ettcProfile.Profile
ellerprofile.Profile
– objekt användas som profildatakälla.
Stats
objekt har följande metoder:
strip_dirs
()
denna metod för klassenStats
tar bort all ledande sökvägsinformation från filnamn. Det är mycket användbart för att minska storleken påutskriften så att den passar in (nära) 80 kolumner. Denna metod modifierarobjektet och den avskalade informationen går förlorad. Efter att ha utfört astrip-operation anses objektet ha sina poster i en” slumpmässig ” ordning, eftersom det var strax efter objektinitiering och laddning.Om strip_dirs()
orsakar att två funktionsnamn äroskiljbara (de är på samma rad i samma filnamn ochhar samma funktionsnamn), då statistiken för dessa två entriesackumuleras i en enda post.
add
(*filnamn) bisexuell
denna metod för klassenStats
ackumulerar ytterligare profilinformation i det aktuella profileringsobjektet. Dess argument bör refereratill filnamn som skapats av motsvarande version av profile.run()
eller cProfile.run()
. Statistik för identiskt namngivna (re: file, line,name) Funktioner ackumuleras automatiskt i single functionstatistics.
dump_stats
(filnamn) bisexuell
spara data som laddats i objektetStats
till ett filnamnfilnamn. Filen skapas om den inte existerar och skrivs överom den redan finns. Detta motsvarar metoden med samma namnpå profile.Profile
och cProfile.Profile
klasserna.
sort_stats
(*keys) 2b
denna metod ändrar objektetStats
genom att sortera det enligt de medföljande kriterierna. Argumentet kan vara antingen en sträng eller ett SortKeyenum som identifierar grunden för en sort (exempel: 'time'
'name'
SortKey.TIME
eller SortKey.NAME
). Sortkey enums-argumentet harfördel över strängargumentet genom att det är mer robust och mindre felaktigt.
När mer än en tangent tillhandahålls används ytterligare tangenter somsekundära kriterier när det finns jämlikhet i alla tangenter som valts tidigaredem. Till exempelsort_stats(SortKey.NAME, SortKey.FILE)
sorterar alla poster enligt deras funktionsnamn och löser alla band(identiska funktionsnamn) genom att Sortera efter filnamn.
för strängargumentet kan förkortningar användas för alla nyckelnamn, så länge förkortningen är entydig.
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.Tid |
intern tid |
|
intern tid |
Observera att alla typer av statistik är i fallande ordning (placera de flesta tidskrävande objekt först), där som namn, fil och radnummer sökningarär i stigande ordning (alfabetisk). Den subtila skillnaden mellanSortKey.NFL
och SortKey.STDNAME
är att standardnamnet är asort av namnet som tryckt, vilket innebär att de inbäddade linjenummernafå jämfört på ett udda sätt. Till exempel skulle raderna 3, 20 och 40 (omfilnamnen var desamma) visas i strängordningen 20, 3 och 40.In kontrast, SortKey.NFL
gör en numerisk jämförelse av raden numbers.In faktum är att sort_stats(SortKey.NFL)
är samma somsort_stats(SortKey.NAME, SortKey.FILENAME, SortKey.LINE)
.
av bakåtkompatibilitetsskäl är de numeriska argumenten-1
0
1
och2
tillåtna. De tolkas som 'stdname'
'calls'
'time'
och 'cumulative'
respektive. Om detta oldstyle-format (numeriskt) används, kommer endast en sorteringsnyckel (den numeriska tangenten) att användas, och ytterligare argument ignoreras tyst.
nytt i version 3.7: lade till SortKey enum.
reverse_order
() Portugals
denna metod för klassenStats
vänder ordningen på grundlistan i objektet. Observera att stigande vsdescending-ordning som standard är korrekt vald baserat på sorteringsnyckeln.
print_stats
(*restrictions) Portugals
denna metod förStats
skriver ut en rapport enligt beskrivningen iprofile.run()
definition.
utskriftsordningen är baserad på den sistasort_stats()
operation som gjorts på objektet (med förbehåll förcaveats i add()
ochstrip_dirs()
).
argumenten (om sådana finns) kan användas för att begränsa listan till betydande poster. Ursprungligen tas listan för att vara den kompletta uppsättningenav profilerade funktioner. Varje begränsning är antingen ett heltal (för att välja antal rader) eller en decimalfraktion mellan 0,0 och 1.0 inklusive (toselect en procentandel av rader), eller en sträng som kommer tolkas som aregular uttryck (till mönster matchar standardnamnet som skrivs ut).Om flera begränsningar tillhandahålls tillämpas de i följd.Till exempel:
print_stats(.1, 'foo:')
skulle först begränsa utskriften till första 10% av listan och sedan bara printfunctions som var en del av filnamnet .*foo:
. I kontrast, kommandot:
print_stats('foo:', .1)
skulle begränsa listan till alla funktioner som har filnamn .*foo:
och fortsätt sedan att bara skriva ut de första 10% av dem.
print_callers
(*restrictions) exceptional
denna metod för klassenStats
skriver ut en lista över alla funktionersom kallas varje funktion i den profilerade databasen. Beställningen är identisk med den som tillhandahålls av print_stats()
, och definitionen av det begränsande argumentet är också identiskt. Varje uppringare ärrapporteras på sin egen linje. Formatet skiljer sig något beroende påprofiler som producerade statistiken:
-
med
profile
visas ett nummer inom parentes efter varje samtalför att visa hur många gånger detta specifika samtal gjordes. För enkelhets skull upprepar asekund icke-parentesiserat nummer den kumulativa tiden som spenderas ifunktionen till höger. -
med
cProfile
föregås varje uppringare av tre nummer: antalet gånger detta specifika samtal gjordes och de totala och kumulativa tiderna som spenderades i den aktuella funktionen medan den åberopades avden här specifika uppringaren.
print_callees
(*restrictions) Portugals
denna metod för klassenStats
skriver ut en lista över alla funktionersom anropades av den angivna funktionen. Bortsett från denna reversering av riktning av samtal (re: called vs kallades av), argumenten ocharrangemanget är identiska med print_callers()
– metoden.
get_stats_profile
() bisexuell
denna metod returnerar en instans av StatsProfile, som innehåller en mappingof funktionsnamn till instanser av FunctionProfile. Varje FunctionProfileinstance innehåller information relaterad till funktionens profil, till exempel hur länge funktionen tog att köra, hur många gånger den kallades, etc…
nytt i version 3.9: lade till följande dataclasses: StatsProfile, FunctionProfile.Lade till följande funktion: get_stats_profile.