GIL devre dışı bırakılmasına izin verildi
PYTHON_GIL=0 veya -X gil=0 ayarlanarak GIL (Global Interpreter Lock) devre dışı bırakılabilecek.
- GIL ile ilgili veri yapıları başlatılıyor, ancak GIL devre dışı bırakıldığında
take_gil() ve drop_gil() erken dönüyor.
- GIL devre dışıyken bazı testler ve küçük programlar çalıştırıldı; temel iş parçacığı programları da zaman zaman çalışıyor.
- Tüm test paketini çalıştırmaya çalışınca
test_asyncio içinde hızla çöküyor.
GIL devre dışı bırakma mekanizması eklendi
- GIL devre dışı bırakma mekanizmasını ekleyen issue (#116167) hakkında tartışmalar yapıldı.
- Serbest iş parçacıklı derlemede GIL'i devre dışı bırakabilen bir özellik eklendi.
- GIL'i yeniden etkinleştirme işi (#116322) ile varsayılan olarak GIL'i devre dışı bırakma işi (#116329) takip ediliyor.
Kod incelemesi ve testler
- Kod incelemesi talebi ve test vakaları eklenmesi üzerine tartışmalar yapıldı.
PYTHON_GIL ortam değişkeninin belgelenmesi ve kullanıcı geri bildirimi alınmasına yönelik öneriler sunuldu.
-X gil seçeneğinin eklenmesi, bunun sys.flags içine yansıtılması ve ortam değişkenlerini ele alan testlerin güncellenmesi de buna dahil.
GN⁺ görüşü
- Bu değişiklik Python topluluğu üzerinde büyük etki yaratabilir; çünkü GIL, Python'un çoklu iş parçacığı performansını sınırlayan iyi bilinen bir unsur.
- GIL'i devre dışı bırakma özelliği performans artışı sağlayabilir, ancak aynı zamanda kararlılık ve uyumluluk sorunları da doğurabileceği için dikkatli bir yaklaşım gerekiyor.
- Python'u GIL olmadan çalıştırmak, özellikle paralel işleme ile ilgili görevlerde avantaj sağlayabilir; ancak mevcut birçok Python kodu GIL varsayımıyla yazıldığı için bu değişimin etkisini değerlendirmek önemli.
- Diğer diller veya çalışma zamanları çoğu zaman GIL benzeri mekanizmalar kullanmıyor; örneğin Node.js, asenkron I/O üzerinden tek iş parçacıklı performansı en üst düzeye çıkaran bir yaklaşım benimsiyor.
- Bu teknoloji devreye alınırken mevcut kodun thread safety durumu gözden geçirilmeli ve gerekirse refactoring düşünülmeli. GIL'i devre dışı bırakarak elde edilecek performans kazanımları ile kararlılık arasındaki dengeyi iyi kurmak önemli.
Henüz yorum yok.