SORU
24 ŞUBAT 2009, Salı


Nasıl bir Python betiği profilini çıkarabilir misiniz?

Project Euler ve diğer kodlama yarışmaları sık sık ya da insanların kendi özel çözüm ishal nasıl iftihar çalıştırmak için maksimum bir süre var. Python ile, bazen yaklaşımlardan biraz kludgey - yani, __main__ zamanlama kodu ekliyoruz.

Python bir programı çalıştırmak için gereken ne kadar profil için iyi bir yolu nedir?

CEVAP
24 ŞUBAT 2009, Salı


Python bir profiler cProfile denilen içerir. Bu sadece toplam zaman, ama aynı zamanda her ayrı işlevi ve her bir fonksiyonu olduğunu anlatır kez çalışan, kolay iyileştirmeleri yapmak gerekir yeri belirlemek için yapım sağlar.

Bu gibi: yorumlayıcı kodu içinde, ya da arayabilirsin

import cProfile
cProfile.run('foo()')

Daha faydalı bir komut çalıştırırken cProfile çağırabilirsiniz:

python -m cProfile myscript.py

Daha da kolaylaştırmak için, küçük bir toplu iş dosyası yaptım 'adlı profili.': . bat

python -m cProfile %1

Yani yapmam gereken tek şey:

profile euler048.py

Ve bu olsun:

1007 function calls in 0.061 CPU seconds

Ordered by: standard name
ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    1    0.000    0.000    0.061    0.061 <string>:1(<module>)
 1000    0.051    0.000    0.051    0.000 euler048.py:2(<lambda>)
    1    0.005    0.005    0.061    0.061 euler048.py:2(<module>)
    1    0.000    0.000    0.061    0.061 {execfile}
    1    0.002    0.002    0.053    0.053 {map}
    1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler objects}
    1    0.000    0.000    0.000    0.000 {range}
    1    0.003    0.003    0.003    0.003 {sum}

EDİT: PyCon 2013 iyi bir video kaynağı için Güncellendi link: http://lanyrd.com/2013/pycon/scdywg/

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009