Hyppää sisältöön

Puhdin ja Mahdin laskentapalvelut ovat poistuneet käytöstä. Puhdin ja Mahdin kirjautumisnoodit sekä tallennustila ovat saatavilla 15. lokakuuta 2026 asti, mutta ne eivät enää ole palvelusopimusten piirissä. Ryhdythän toimiin datan siirtämiseksi Roihuun välittömästi. Ohjeita löydät sivulta Roihun datan siirto-opas.

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):

import cProfile
cProfile.run('functba(list_parameters)')

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:

python -m cProfile [-o output_file] [-s sort_order] myscript.py

Tulokset voidaan tulostaa tai tallentaa tiedostoon. Oletusarvoisesti 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 profiloinnin tuloksesta:

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}

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta