python Profilers hryvnias

statistikkklassen¶

Analyse av profildataene gjøres ved hjelp av Stats klassen.

klassepstats.Stats(*filnavn eller profil, stream = sys.denne klassekonstruktøren oppretter en forekomst av et «statistikkobjekt»fra afilnavn (eller liste over filnavn) eller fra enProfile– forekomst. Outputvil bli skrevet ut til strømmen spesifisert av stream.

filen valgt av konstruktøren ovenfor må ha blitt opprettet av den tilsvarende versjonen av profileellercProfile. For å være spesifikk, er det ingen filkompatibilitet garantert med fremtidige versjoner av thisprofiler, og det er ingen kompatibilitet med filer produsert av otherprofilers, eller samme profiler kjører på et annet operativsystem. Hvis det finnes flere filer, samles all statistikk for identiske funksjoner, slik at en samlet oversikt over flere prosesser kan vurderesi en enkelt rapport. Hvis flere filer må kombineres med data i anexistingStats objekt,add() metodenkan brukes.

I Stedet for å lese profildataene fra en fil, kan et cProfile.Profileeller profile.Profile – objekt brukes som profildatakilde.

Stats objekter har følgende metoder:

strip_dirs()¶

denne metoden forStats klassen fjerner all ledende baneinformasjon fra filnavn. Det er veldig nyttig for å redusere størrelsen påutskriften for å passe inn i (nær) 80 kolonner. Denne metoden endrer segobjektet, og den strippede informasjonen går tapt. Etter å ha utført astrip-operasjon, anses objektet å ha sine oppføringer i en «tilfeldig» rekkefølge, som det var like etter objektinitialisering og lasting.Hvis strip_dirs() forårsaker at to funksjonsnavn skal skille seg ut (de er på samme linje med samme filnavn, oghar samme funksjonsnavn), så statistikken for disse to entryeneer akkumulert i en enkelt oppføring.

add(*filnavn)¶

denne metoden iStats klassen akkumulerer ekstra profilinformasjon i det gjeldende profileringsobjektet. Dens argumenter bør referere til filnavn opprettet av den tilsvarende versjonen av profile.run() eller cProfile.run(). Statistikk for identisk navngitte (re: fil, linje,navn) funksjoner blir automatisk akkumulert i enkelt functionstatistics.

dump_stats(filnavn)¶

Lagre dataene som er lastet inn iStats objektet til en fil som heter filnavn. Filen er opprettet hvis den ikke eksisterer, og er overskrivethvis den allerede eksisterer. Dette tilsvarer metoden med samme navnpåprofile.Profile ogcProfile.Profile klassene.

sort_stats(*nøkler)¶

denne metoden endrerStats objektet ved å sortere det i henhold til de angitte kriteriene. Argumentet kan enten være en streng eller Et SortKeyenum som identifiserer grunnlaget for en sort (eksempel: 'time''name'SortKey.TIME eller SortKey.NAME). Sortkey enums-argumentet harfordel over strengargumentet ved at det er mer robust og mindre utsatt.

når mer enn en nøkkel er oppgitt, brukes tilleggstaster somsekundære kriterier når det er likestilling i alle nøkler valgt førdem. For eksempelsort_stats(SortKey.NAME, SortKey.FILE) sorterer alle oppføringene i henhold til funksjonsnavnet, og løser alle bånd (identiske funksjonsnavn) ved å sortere etter filnavn.

for strengargumentet kan forkortelser brukes til alle nøkkelnavn, somlenge som forkortelsen er entydig.

The following are the valid string and SortKey:

intern tid

N/a

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

'tottime'

intern tid

merk at alle typer statistikk er i synkende rekkefølge (plasserer mesttidskrevende elementer først), der som navn, fil og linjenummer searchesare i stigende rekkefølge (alfabetisk). Den subtile forskjellen mellom SortKey.NFL og SortKey.STDNAME er at standardnavnet er asort av navnet som trykt, noe som betyr at de innebygde linjenummerenebli sammenlignet på en merkelig måte. For eksempel vil linjene 3, 20 og 40 (hvis filnavnene var de samme) vises i strengrekkefølgen 20, 3 og 40.In kontrast,SortKey.NFL gjør en numerisk sammenligning av linjen numbers.In faktum, sort_stats(SortKey.NFL) er det samme somsort_stats(SortKey.NAME, SortKey.FILENAME, SortKey.LINE).

av hensyn til bakoverkompatibilitet er de numeriske argumentene-101 og2 tillatt. De tolkes som 'stdname''calls''time'og'cumulative' henholdsvis. Hvis dette oldstyle-formatet (numerisk) brukes, brukes bare en sorteringsnøkkel (talltasten), og flere argumenter ignoreres stille.

Nytt i versjon 3.7: Lagt Til SortKey enum.

reverse_order()¶

denne metoden ForStats klassen reverserer rekkefølgen av den grunnleggende listen i objektet. Merk at som standard stigende vsdescending rekkefølge er riktig valgt basert på sorteringsnøkkelen av valget.

print_stats(*begrensninger)¶

denne metoden forStats klassen skriver ut en rapport som beskrevetiprofile.run() definisjonen.

rekkefølgen på utskriften er basert på den siste sort_stats() operasjon gjort på objektet(underlagt kaveats i add() og strip_dirs()).

argumentene (hvis noen) kan brukes til å begrense listen ned til de signifikante oppføringene. I utgangspunktet er listen tatt for å være det komplette settetav profilerte funksjoner. Hver begrensning er enten et heltall (for å velge enantall linjer), eller en desimalfraksjon mellom 0,0 og 1.0 inkluderende (tilselg en prosentandel av linjer), eller en streng som skal tolkes som aregular uttrykk (til mønsteret samsvarer med standardnavnet som skrives ut).Hvis flere restriksjoner er gitt, blir de brukt i rekkefølge.For eksempel:

print_stats(.1, 'foo:')

vil først begrense utskrift til første 10% av listen, og deretter bare printfunctions som var en del av filnavnet.*foo:. I kontrast, kommandoen:

print_stats('foo:', .1)

vil begrense listen til alle funksjoner som har filnavn.*foo:,og fortsett deretter med å bare skrive ut de første 10% av dem.print_callers(*begrensninger)¶

denne metoden forStats klassen skriver ut en liste over alle funksjonersom kalles hver funksjon i den profilerte databasen. Ordren er sidentisk til det som leveres av print_stats(), og definisjonen av begrensningsargumentet er også identisk. Hver ringer errapportert på egen linje. Formatet varierer litt avhengig avprofiler som produserte statistikken:

  • Med profile, et tall vises i parentes etter hvert anrop for å vise hvor mange ganger denne bestemte samtalen ble gjort. For enkelhets skyld gjentar asecond ikke-parentes nummer den kumulative tiden brukt ifunksjonen til høyre.

  • Med cProfile har hver innringer tre numre foran seg: antall ganger dette bestemte anropet ble foretatt, og de totale og kumulative tidspunktene som ble brukt i den gjeldende funksjonen mens den ble påkalt av denne bestemte innringer.

print_callees(*begrensninger)¶

denne metoden ForStats klassen skriver ut en liste over alle funksjonersom ble kalt av den angitte funksjonen. Bortsett fra denne reverseringen av kall (re: kalt vs ble kalt av), er argumentene ogordering identiske medprint_callers() – metoden.

get_stats_profile()¶

denne metoden returnerer En forekomst Av StatsProfile, som inneholder en mappingof funksjonsnavn til forekomster Av FunctionProfile. Hver FunctionProfileinstance inneholder informasjon relatert til funksjonens profil som howlong funksjonen tok for å kjøre, hvor mange ganger det ble kalt, etc…

Nytt i versjon 3.9: Lagt til følgende dataclasses: StatsProfile, FunctionProfile.Lagt til følgende funksjon: get_stats_profile.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.