Python-Profilers Portugals

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.Profileellerprofile.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:

N/A

intern tid

Valid String Arg

Valid enum Arg

Meaning

'calls'

SortKey.CALLS

call count

'cumulative'

SortKey.CUMULATIVE

cumulative time

'cumtime'

N/A

cumulative time

'file'

N/A

file name

'filename'

SortKey.FILENAME

file name

'module'

N/A

file name

'ncalls'

N/A

call count

'pcalls'

SortKey.PCALLS

primitive call count

'line'

SortKey.LINE

line number

'name'

SortKey.NAME

function name

'nfl'

SortKey.NFL

name/file/line

'stdname'

SortKey.STDNAME

standard name

'time'

SortKey.Tid

intern tid

'tottime'

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-101 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.

Lämna ett svar

Din e-postadress kommer inte publiceras.