1 puan yazan darjeeling 1 시간 전 | Henüz yorum yok. | WhatsApp'ta paylaş

Python 3.15'e eklenen örneklemeli profiler Tachyon ile çok iş parçacıklı darboğazları görselleştirme ve OOP soyutlamalarının performans tuzaklarını yakalama örnekleri tanıtılıyor

Tachyon nedir?

Python 3.15 ile standart kütüphaneye eklenecek örnekleme tabanlı bir profiler.
Temel noktası, mevcut profiler'ların büyük ölçüde göz ardı ettiği free-threading (GIL'siz) ortamını yerel olarak desteklemesi.

Başlıca özellikler

  • Örnekleme yöntemiyle düşük ek yük
  • Tüm thread'leri aynı anda profilleme desteği (-a seçeneği)
  • Çalışan sürece uzaktan bağlanma (attach) imkanı
  • Flamegraph dahil çeşitli çıktı formatları desteği
  • async farkındalığı — asyncio programlarına da uygulanabilir

Çalıştırma yöntemi

sudo -E uv run -p 3.15.0a6t python -m profiling.sampling run \  
  -a --flamegraph -o profile.html -r 20khz your_script.py  
# -a       : ana thread dışındaki tüm thread'leri profiller  
# -r 20khz : saniyede 20.000 örnekleme (hassasiyet ayarlanabilir)  
# sonuç    : flamegraph HTML — kırmızı sütunlar hot path'i gösterir  

Gerçek kullanım örneği — free-threading darboğazını tespit etme

Optimizasyon öncesi__getitem__ üzerinden Grid erişimi toplam çalışma süresinin %75'ini oluşturuyor

<https://blog.changs.co.uk/images/unoptimised-bench.png>;

Optimizasyon sonrası — dahili tuple'a doğrudan erişime geçildikten sonra %5,32'ye düştü

<https://blog.changs.co.uk/images/optimised-bench.png>;

Neden önemli?

  • Bugüne kadar free-threading performans sorunlarını bulmak çoğunlukla "sezgilere göre" mümkün oluyordu
  • Tachyon, thread'lerin nerede takıldığını görsel olarak gösteren ilk resmi araç
  • Sıradan Python geliştiricileri için de free-threading performansını doğrudan ölçme ve iyileştirme yolu açılıyor

Henüz yorum yok.

Henüz yorum yok.