Ana içeriğe geç
Programlama

Wrapture kütüphanesi Python uygulamalarındaki yavaş kodları tespit ediyor

Öne çıkanlar

  • Wrapture, fonksiyonun kendi harcadığı süre ile çağırdığı alt işlemlerin süresini birbirinden ayırıyor.
  • Aggregate toplayıcısı, olay nesnelerini bellekte tutmayarak sabit bir hafıza kullanımıyla toplu istatistik sunuyor.
  • Uygulama kodunu değiştirmeden Flask uç noktalarındaki yavaş metotlar otomatik testlerde denetlenebiliyor.

Python uygulamalarında performans darboğazlarını geleneksel yöntemlerle bulmak katmanlar arası log karmaşasına ya da kapsamlı profil çıkarıcıların getirdiği aşırı ayrıntıya yol açıyor. Yeni bir yöntem paylaşan Graham Dumpleton, Wrapture kütüphanesini kullanarak bir Flask uygulamasındaki yavaş uç noktaların nasıl incelenebileceğini gösterdi. Araç, metot çağrılarını üst-alt ilişkileriyle kaydederek toplam sürenin ne kadarının doğrudan ilgili fonksiyonda harcandığını ve ne kadarının alt çağrılardan kaynaklandığını ayrıştırıyor.

Geliştirici tarafından hazırlanan örnek senaryoda, ödeme defteri kaydına yapay bir gecikme eklendi ve sistem bu gecikmeyi tek bir istek ağacında açıkça gösterdi. Wrapture, bir fonksiyonun toplam süresinden alt elemanların sürelerini çıkararak doğrudan fonksiyonun kendisine ait süreyi hesaplıyor. Bu mekanizma sayesinde geliştiriciler, dış profil çıkarıcıların aksine çağrı yığınının tamamına boğulmadan doğrudan hedeflenen bileşenleri izleyebiliyor ve elde edilen ölçümleri otomatik birim testlerinde performans savı olarak kullanabiliyor.

Araç ayrıca tekil isteklerin ötesine geçerek Aggregate toplayıcısıyla süreç boyunca toplam, en kısa, en uzun ve doğrudan süreleri içeren özet raporlar üretiyor. Olay verisi tutmayan bu toplayıcı, bellek kullanımını sabit tutarken sunucu performansını sürekli olarak takip etme olanağı veriyor. Uygulamaya eklenen tek satırlık ek açıklama işlevi ise kiracı veya hesap bazlı gecikmelerin kayıt dosyalarından kolayca filtrelenmesine yardımcı oluyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.