the Stats Class¶
Analysis of the profiler data is divered using the Stats
class.
classpstats.
Stats
(*filenames or profile, stream=sys.stdout)¶
tämä luokan konstruktori luo ”tilastoobjektin” instanssin afilenimestä (tai tiedostonimien luettelosta) tai Profile
instanssi. Output tulostetaan stream määritelty stream.
yllä olevan rakentajan valitseman tiedoston on täytynyt olla luotu profile
tai cProfile
. Ollakseni tarkka, ei ole Tiedostojen yhteensopivuutta taattu tulevien versioiden thisprofiler, ja ei ole yhteensopivuutta tiedostojen tuottamia otherprofilers, tai sama profiler ajaa eri käyttöjärjestelmässä. Jos useita tiedostoja toimitetaan, kaikki identtisiä toimintoja koskevat tilastot kootaan yhteen, niin että kokonaisnäkemystä useista prosesseista voidaan tarkastella yhdessä kertomuksessa. Jos lisätiedostoja on yhdistettävä olemassa olevan Stats
objektin tietoihin, voidaan käyttää add()
menetelmää.
profiilitietojen lukemisen sijaan profiilitietolähteenä voidaan käyttää cProfile.Profile
tai profile.Profile
objektia.
Stats
olioilla on seuraavat menetelmät:
strip_dirs
()¶
tämä Stats
Luokka poistaa kaikki johtavat polkutiedot tiedostonimistä. Se on erittäin hyödyllinen pienennettäessä tulosteen kokoa niin, että se mahtuu (lähelle) 80 sarakkeeseen. Tämä menetelmä muokkaa objektia, ja riisuttu tieto katoaa. Astrip-operaation suorittamisen jälkeen objektilla katsotaan olevan merkintänsä ”satunnaisessa” järjestyksessä, koska se tapahtui juuri objektin alustuksen ja lataamisen jälkeen.Jos strip_dirs()
aiheuttaa kahden funktion nimien erottamisen toisistaan (ne ovat samalla rivillä samaa tiedostonimeä ja niillä on sama funktion nimi), näiden kahden entrin tilastot kootaan yhdeksi tietueeksi.
add
(*tiedostonimet)¶
tämä Stats
Luokka kerää lisää profilointitietoa nykyiseen profilointikohteeseen. Sen argumenttien tulisi viitata tiedostonimiin, jotka on luotu vastaavalla versiolla profile.run()
tai cProfile.run()
. Identtisesti nimettyjen (re: tiedosto, rivi,nimi) funktioiden tilastot kasautuvat automaattisesti yksittäisiksi funktiostatistikoiksi.
dump_stats
(tiedostonimi)¶
Tallenna Stats
objekti tiedostolle nimeltä filename. Tiedosto luodaan, jos sitä ei ole olemassa, ja se ylikirjoitetaan, jos se on jo olemassa. Tämä vastaa saman nimen menetelmää profile.Profile
ja cProfile.Profile
luokissa.
sort_stats
(*keys)¶
tämä menetelmä muuttaa Stats
objektia lajittelemalla sen annettujen kriteerien mukaan. Argumentti voi olla joko merkkijono tai SortKeyenum, joka tunnistaa järjestyksen perustan (esimerkiksi: 'time'
'name'
SortKey.TIME
tai SortKey.NAME
). SortKey enums argumentti onetu string argumentti, että se on vahvempi ja vähemmän virhe altis.
kun useampi kuin yksi avain on annettu, käytetään lisäavaimia toissijaisten kriteerien mukaan, kun kaikissa ennen niitä valituissa avaimissa on yhtäläisyys. Esimerkiksi sort_stats(SortKey.NAME, SortKey.FILE)
sortall tietueet niiden funktion nimen mukaan ja ratkaisee kaikki sidokset(identtiset funktionimet) lajittelemalla tiedostonimen mukaan.
merkkijonoargumentissa voidaan käyttää lyhenteitä mistä tahansa avainnimestä, kunhan lyhenne on yksiselitteinen.
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.Aika |
|
|
huomaa, että kaikki tilastotyypit ovat alenevassa järjestyksessä (sijoittaen eniten aikaa vievät kohteet ensimmäiseksi), jossa nimenä, tiedostona ja rivinumerona olevat haut ovat nousevassa järjestyksessä (aakkosjärjestyksessä). Hienovarainen eroSortKey.NFL
ja SortKey.STDNAME
on se, että vakionimi on nimen asort painettuna, mikä tarkoittaa, että upotettuja rivinumeroita verrataan parittomalla tavalla. Esimerkiksi rivit 3, 20 ja 40 näkyisivät (jos tiedostonimet olisivat samat) merkkijonojärjestyksessä 20, 3 ja 40.In kontrasti, SortKey.NFL
tekee numeerisen vertailun riville numbers.In itse asiassa sort_stats(SortKey.NFL)
on sama kuinsort_stats(SortKey.NAME, SortKey.FILENAME, SortKey.LINE)
.
taaksepäin yhteensopivuussyistä numeeriset argumentit -1
0
1
ja 2
ovat sallittuja. Ne tulkitaan seuraavasti: 'stdname'
'calls'
'time'
ja 'cumulative'
. Jos käytetään tätä oldstyle-muotoa (numeerinen), käytetään vain yhtä lajitteluavainta (numeerinen avain), ja lisäargumentit jätetään hiljaisesti huomiotta.
uusi versio 3.7: lisätty SortKey-enum.
reverse_order
()¶
tämä Stats
Luokka kääntää perusluettelon järjestyksen objektin sisällä. Huomaa, että oletusarvoisesti nouseva vsdescending järjestys on oikein valittu valinnan lajitteluavaimen perusteella.
print_stats
(*rajoitukset)¶
tämä Stats
Luokka tulostaa profile.run()
määritelmän mukaisen raportin.
tulostusjärjestys perustuu viimeiseensort_stats()
objektille tehtyyn operaatioon (subject tocaveats in add()
jastrip_dirs()
).
annettuja perusteluja (jos sellaisia on) voidaan käyttää luettelon rajoittamiseen merkittäviin merkintöihin. Aluksi luettelo otetaan koko joukko profiloituja toimintoja. Jokainen rajoitus on joko kokonaisluku (valitaan rivien määrä), tai desimaaliosuus välillä 0,0 ja 1.0 inclusive (valitse prosenttiosuus rivejä), tai merkkijono, joka tulkitaan aregular lauseke (kuvio vastaa standardin nimi, joka on painettu).Jos rajoituksia on useita, niitä sovelletaan peräkkäin.Esimerkiksi:
print_stats(.1, 'foo:')
rajoittaisi tulostuksen ensin 10%: iin listasta, ja sen jälkeen vain tiedostonimeen kuuluviin printfunktioihin.*foo:
. Sen sijaan komitea:
print_stats('foo:', .1)
rajoittaisi luettelon koskemaan kaikkia funktioita,joiden tiedostonimet ovat .*foo:
, ja jatkaisi sitten vain ensimmäisten 10% tulostamista.
print_callers
(*rajoitukset)¶
tämä menetelmä Stats
Luokka tulostaa luettelon kaikista profiloidun tietokannan jokaista funktiota kutsuvista funktioista. Järjestys on sama kuin print_stats()
, ja myös rajoittavan argumentin määritelmä on sama. Jokainen soittaja ilmoittautuu omalla linjallaan. Muoto vaihtelee hieman riippuen tilastot tuottaneesta kääntäjästä:
-
kanssa
profile
, numero näkyy suluissa jokaisen puhelun jälkeen, joka näyttää kuinka monta kertaa kyseinen puhelu on tehty. Mukavuuden, asecond ei-suluissa numero toistaa kumulatiivinen vietetty aika toiminto oikealla.
cProfile
jokaista soittajaa edeltää kolme numeroa: kuinka monta kertaa kyseinen puhelu on soitettu, ja kuinka monta ja kumulatiivista aikaa kulloisessatoiminnossa on käytetty, kun kyseinen soittaja on vedonnut siihen.
print_callees
(*rajoitukset)¶
tämä menetelmä Stats
Luokka tulostaa luettelon kaikista funktioista, joita ilmoitettu funktio kutsui. Lukuun ottamatta tätä käänteispuhelujen kääntämistä (re: called vs was called by), argumentit andorring ovat identtiset print_callers()
– menetelmän kanssa.
get_stats_profile
()¶
tämä menetelmä palauttaa statsprofile-instanssin, joka sisältää funktioiden nimien kartoituksen Funktioprofile-instansseille. Jokainen Funktiofileinstance sisältää funktion profiiliin liittyviä tietoja, kuten kuinka kauan funktio kesti suorittaa, kuinka monta kertaa sitä kutsuttiin jne…
uusi versio 3.9: lisätty seuraavat dataklassikot: StatsProfile, FunctionProfile.Lisätty seuraava toiminto: get_stats_profile.