2010-11-03 12 views
5

Benim python programımda çok fazla modül kullandım ve aranan işlevlerin ve çağrı zincirlerinin dahil edilmesine çalışıyorum. Bu istatistikleri bana sağlayacak bir araç/modül python var mı.Python'da arama grafiği profil oluşturucuları

+1

Gerçekten soruyorsunuz "Python kodumdaki darboğazları nasıl bulabilirim ki, dalya "? Bazı seviyelerde –

+0

evet. Sadece belirli bir olay için işlev çağrı zinciri oldukça uzunsa, eğer yapabilirsem etkin bir alternatif yöntemle ikame etmeyi tercih ederim. – Rahul

cevap

6

: olarak

Bu kadar kolay. Uygulamamın bir kerede çok sayıda iş parçacığı bulunduğundan ve 12000 bağlantıyla sonuçlandığımdan ve benim için derleyemediğimden bu benim amacım için çalışmadı. Ama bunu tek bir iş parçacığı üzerinde çalıştırdığımda çalıştı.

http://pycallgraph.slowchop.com/

3

pydoc -k profil

size sisteminizde ne bir listesini verecektir. Profil ve cProfile kullandım. Bu kullandım


if __name__ == '__main__': 
if PROFILING: 
    import cProfile 
    cProfile.run("main()") 
else: 
    main() 
+0

Ben daha önce bunu deneyin di .. ve hata alıyorum, bu yüzden benim için daha kolay hale getirecek bir araç/modül arıyordum neden – Rahul

+0

Size hata tam metni nedir? –

+0

Geri İzleme (en son çağrı son): Dosya "test.py", satır 12, cProfile.run ("main()") Dosya "/usr/lib/python2.6/cProfile.py", run sonucu hat 36, = prof.print_stats (sıralama) Dosya "/usr/lib/python2.6/cProfile.py", satır 80, print_stats ithalat pstats ImportError içinde: Hayır modül adlı pstats – Rahul

1

Altı yıl sonra bazı people recommend çağrı zincirlerini görselleştirilmesi için KCacheGrind kullanmak, aynı soru var. Linux kullanıcıları için geçerli bir seçenek olsa da, Mac OSX'e ve muhtemelen Windows'a da yüklemek son derece zordur.

Son olarak, bunun yerine gprof2dot kullanıyorum. Sadece birkaç komutlar ile size ifade çağrısı grafik sahip olacaktır:

python -m cProfile -o output.pstats path/to/your/script arg1 arg2 
gprof2dot.py -f pstats output.pstats | dot -Tpng -o output.png 

Kolay aracı, hızlı sonuçlar: bunu kontrol: https://github.com/jrfonseca/gprof2dot

Düzenleme:

Şimdi öğrendim alabilirsiniz KCachegrind Aynı zamanda demleme yoluyla: brew install qcachekrind