Ana Sayfa

Python için Hedef Odaklı Profilleyici: tprof

1 dk okuma

Geleneksel profilleyiciler, bir programın tamamının performansını ölçerek zamanın çoğunun nerede harcandığını belirler. Ancak belirli bir fonksiyonu optimize ettikten sonra, değişikliklerin işe yarayıp yaramadığını görmek için tüm programı yeniden profillemek yavaş ve zahmetli olabilir. Bu süreç, programın yürütülmesine ek yük getirir ve rapordan yalnızca ilgilenilen fonksiyonun istatistiklerini ayıklamak gerekir. Bu durum, geliştiricilerin optimize edilmiş kodun etkisini hızlıca görmesini zorlaştırır.

Bu zorluktan yola çıkarak geliştirilen tprof, Python 3.12 ve üzeri sürümler için tasarlanmış hedef odaklı bir profilleyicidir. tprof, yalnızca belirtilen hedef fonksiyonlarda harcanan zamanı ölçer. Bu sayede, bir optimizasyon öncesinde ve sonrasında programınızı ölçerek yapılan değişikliğin herhangi bir fark yaratıp yaratmadığını hızlı bir komut satırı raporuyla görebilirsiniz. Özellikle kod optimizasyonu yaparken birden fazla fonksiyonu karşılaştırmak istediğinizde, tprof'un karşılaştırma modu oldukça kullanışlıdır. Bu mod, raporda bir "delta" sütunu ekleyerek her fonksiyonun bir temel duruma göre ne kadar hızlı veya yavaş olduğunu gösterir.

tprof, aynı zamanda bir context manager veya decorator olarak kullanılabilen bir Python API'si de sunar. Bu API sayesinde, kodun belirli bir bloğu içindeki fonksiyonları profillemek mümkündür. tprof'un çalışma prensibi, Python 3.12 ile tanıtılan yeni sys.monitoring API'sini kullanmasına dayanır. Bu API, tprof'un yalnızca belirli hedef fonksiyonlar için geri çağrılar kaydetmesini sağlayarak programın geri kalanına herhangi bir ek yük getirmemesini garanti eder. Zamanlama işlemleri ise daha da düşük ek yük için C dilinde gerçekleştirilir.

İçgörü

tprof, Python geliştiricilerine belirli fonksiyon optimizasyonlarının etkisini hızlı ve düşük ek yükle ölçme imkanı sunarak performans iyileştirme süreçlerini önemli ölçüde hızlandırıyor.

Kaynak