Pythonprofilerne Kris

Statistikklassen Kris

analyse af profildataene udføres ved hjælp af Stats – klassen.

klassepstats.Stats(*filnavne eller profil, stream=sys.denne klassekonstruktør opretter en forekomst af et” statistikobjekt”fra afilnavn (eller liste over filnavne) eller fra enProfileforekomst. Outputvil blive udskrevet til den strøm, der er angivet af stream.

filen valgt af ovenstående konstruktør skal være oprettet aftilsvarende version afprofile ellercProfile. For at være specifik er der ingen filkompatibilitet garanteret med fremtidige versioner af thisprofiler, og der er ingen kompatibilitet med filer produceret af otherprofilers, eller den samme profiler kører på et andet operativsystem. Hvis der findes flere filer, samles alle statistikker for identiske funktioner, således at en samlet oversigt over flere processer kan overvejes i en enkelt rapport. Hvis yderligere filer skal kombineres med data i eneksisterende Stats objekt, add() metodenkan bruges.

i stedet for at læse profildataene fra en fil kan et cProfile.Profileeller profile.Profile objekt bruges som profildatakilde.

Stats objekter har følgende metoder:

strip_dirs() ren

denne metode tilStats klassen fjerner alle førende stioplysninger fra filnavne. Det er meget nyttigt at reducere størrelsen afudskriften til at passe inden for (tæt på) 80 kolonner. Denne metode ændrer sigobjektet, og de strippede oplysninger går tabt. Efter udførelse af astrip-operation anses objektet for at have sine poster i en”tilfældig” rækkefølge, da det var lige efter objektinitialisering og indlæsning.Hvis strip_dirs() får to funktionsnavne til at være uadskillelige (de er på samme linje med samme filnavn oghar samme funktionsnavn), akkumuleres statistikken for disse to entries i en enkelt post.

add(*filnavne) liter

denne metode tilStats klassen akkumulerer yderligere profileringoplysninger i det aktuelle profileringsobjekt. Dens argumenter skal henvisetil filnavne oprettet af den tilsvarende version af profile.run()eller cProfile.run(). Statistik for identisk navngivne (re: fil, linje, navn) funktioner akkumuleres automatisk i enkeltfunktionstatistik.

dump_stats(filnavn) liter

Gem de data, der er indlæst iStats objekt til en fil namedfilename. Filen oprettes, hvis den ikke findes, og overskriveshvis den allerede eksisterer. Dette svarer til metoden med samme navnpå profile.Profile og cProfile.Profile klasser.

sort_stats(*keys) liter

denne metode ændrerStats objektet ved at sortere det efterde medfølgende kriterier. Argumentet kan enten være en streng eller et SortKeyenum, der identificerer grundlaget for en slags (eksempel: 'time''name'SortKey.TIME eller SortKey.NAME). Sortkey Enums-argumentet harfordel i forhold til strengargumentet, idet det er mere robust og mindre udsat.

når der leveres mere end en nøgle, bruges yderligere nøgler somsekundære kriterier, når der er lighed i alle nøgler valgt førdem. For eksempel sort_stats(SortKey.NAME, SortKey.FILE) sorterer alle poster i henhold til deres funktionsnavn og løser alle bånd(identiske funktionsnavne) ved at sortere efter filnavn.

for strengargumentet kan forkortelser bruges til alle nøglenavne, så længe forkortelsen er entydig.

The following are the valid string and SortKey:

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'

N/A

bemærk, at alle slags statistikker er i faldende rækkefølge (placerer de flestetidsforbrugende varer først), hvor som navn, fil og linjenummer søgerer i stigende rækkefølge (alfabetisk). Den subtile skelnen mellemSortKey.NFLog SortKey.STDNAME er, at standardnavnet er asort af navnet som trykt, hvilket betyder, at de indlejrede linjenummerfå sammenlignet på en underlig måde. For eksempel vil linjerne 3, 20 og 40 (hvis filnavnene var de samme) vises i strengrækkefølgen 20, 3 og 40.In kontrast, SortKey.NFL gør en numerisk sammenligning af linjen numbers.In fakta, sort_stats(SortKey.NFL)er det samme somsort_stats(SortKey.NAME, SortKey.FILENAME, SortKey.LINE).

af bagudkompatibilitetsårsager er de numeriske argumenter -101 og 2 tilladt. De fortolkes som 'stdname''calls''time'og 'cumulative' henholdsvis. Hvis dette oldstyle-format (numerisk) bruges, bruges kun en sorteringsnøgle (den numeriske tast), og yderligere argumenter ignoreres lydløst.

nyt i version 3.7: tilføjet SortKey enum.

reverse_order() liter

denne metode tilStats klassen vender rækkefølgen afgrundlæggende liste inden for objektet. Bemærk, at stigende vsdescending-ordre som standard er valgt korrekt baseret på den valgte sorteringsnøgle.

print_stats(*begrænsninger) liter

denne metode tilStats klasse udskriver en rapport som beskrevetiprofile.run() definition.

rækkefølgen af udskrivningen er baseret på den sidstesort_stats() operation udført på objektet (med forbehold forcaveats iadd() ogstrip_dirs()).

de angivne argumenter (hvis nogen) kan bruges til at begrænse listen ned tilvæsentlige poster. I første omgang er listen taget for at være det komplette sætaf profilerede funktioner. Hver begrænsning er enten et heltal (for at vælge enantal linjer) eller en decimalfraktion mellem 0,0 og 1.0 inklusive (tilVælg en procentdel af linjer) eller en streng, der fortolkes som et regelmæssigt udtryk (til mønster matcher det standardnavn, der udskrives).Hvis der gives flere begrænsninger, anvendes de sekventielt.For eksempel:

print_stats(.1, 'foo:')

vil først begrænse udskrivningen til første 10% af listen og derefter kun printfunktioner, der var en del af filnavnet.*foo:. I modsætning hertil er kommandoen:

print_stats('foo:', .1)

ville begrænse listen til alle funktioner med filnavne.*foo:, og fortsæt derefter med kun at udskrive de første 10% af dem.

print_callers(*begrænsninger) liter

denne metode tilStats klasse udskriver en liste over alle funktionerder kaldte hver funktion i den profilerede database. Ordren er sidentisk med den, der leveres af print_stats(), og definitionen af begrænsningsargumentet er også identisk. Hver opkalder errapporteret på sin egen linje. Formatet varierer lidt afhængigt afprofiler, der producerede statistikken:

  • medprofile vises et tal i parentes efter hver opkaldfor at vise, hvor mange gange dette specifikke opkald blev foretaget. For nemheds skyld gentager et andet ikke-parentesiseret tal den kumulative tid, der bruges ifunktion til højre.

  • medcProfile er hver opkalder forud for tre tal: det antal gange, dette specifikke opkald blev foretaget, og de samlede og kumulative tider brugt i den aktuelle funktion, mens det blev påberåbt afdenne specifikke opkalder.

print_callees(*begrænsninger) liter

denne metode tilStats klasse udskriver en liste over alle funktionerder blev kaldt af den angivne funktion. Bortset fra denne tilbageførsel afretning af opkald (re: kaldet vs blev kaldt af), argumenterne andordering er identiske med print_callers() metode.

get_stats_profile() ret

denne metode returnerer en forekomst af StatsProfile, som indeholder en kortlægningaf funktionsnavne til forekomster af FunctionProfile. Hver FunctionProfileinstance indeholder oplysninger relateret til funktionens profil, såsom Hvor lang tid funktionen tog at køre, hvor mange gange den blev kaldt osv…

ny i version 3.9: tilføjet følgende dataklasser: StatsProfile, FunctionProfile.Tilføjet følgende funktion: get_stats_profile.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.