-
cProfile: Python-profileri
cProfile: Python-profileri
Saatavuus
- Mahti: mikä tahansa Python-versio
- Puhti: mikä tahansa Python-versio
Lisenssi
Käyttö on mahdollista sekä akateemisiin että kaupallisiin tarkoituksiin.
Käyttö
cProfile on Python-ohjelmien sisäänrakennettu profilointityökalu. Profilointityökalua voi käyttää kahdella tavalla. Koodin sisällä (tai tulkista):
Nyt skripti voidaan suorittaa tavallisena Python-työnä. Tämä antaa tietoa siitä, kuinka kauan funktion kutsu kestää ja kuinka monta kertaa funktiota kutsutaan.
Vaihtoehtoisesti cProfile voidaan käynnistää myös skriptinä toisen skriptin profilointiin:
Tulokset voidaan tulostaa tai tallentaa tiedostoon. Oletuksena ne järjestetään nimen mukaan, mutta myös muita vaihtoehtoja on saatavilla.
Tiedostoon tallennettu raportti voidaan esimerkiksi visualisoida ja tulkita
graafisella työkalulla, kuten pyprof2calltree. Tässä on esimerkki funktion
profiloinnista:
93 function calls in 0.065 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.065 0.065 <string>:1(<module>)
1 0.000 0.000 0.028 0.028 _numpy_fft.py:1086(irfftn)
1 0.000 0.000 0.003 0.003 arraypad.py:102(_do_append)
2 0.000 0.000 0.000 0.000 arraypad.py:107(_prepend_const)
2 0.000 0.000 0.004 0.002 arraypad.py:136(_append_const)
1 0.000 0.000 0.008 0.008 arraypad.py:964(pad)
1 0.000 0.000 0.065 0.065 compute_correlations.py:4(compute_correlations)
1 0.032 0.032 0.065 0.065 normxcorr2.py:33(normxcorr2)
1 0.000 0.000 0.065 0.065 {built-in method builtins.exec}
1 0.003 0.003 0.003 0.003 {built-in method numpy.concatenate}
2 0.002 0.001 0.002 0.001 {built-in method numpy.copyto}
1 0.002 0.002 0.002 0.002 {built-in method numpy.where}
1 0.000 0.000 0.000 0.000 {built-in method numpy.zeros}
2 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects}
2 0.003 0.002 0.003 0.002 {method 'copy' of 'numpy.ndarray' objects}
1 0.020 0.020 0.028 0.028 {mkl_fft._pydfti.irfftn_numpy}
Pidä mielessä, että profilerin suorittaminen täytyy tehdä samalla tavalla kuin (puhti- tai mahti-) eräajon tai interaktiivisen työn suorittaminen.