STL Üretiminde Bellek Sızıntısı Düzeltildi
Dönüştürme worker’ında, uzun toplu işlemlerde ve sık iptal edilen isteklerde bellek kullanımını artırabilen bir tutulma (retention) sorununu düzelttik.
Belirtiler
- Uzun oturumlarda bellek kullanımı artabiliyordu; özellikle çok iptal edilen dönüşümlerde.
- Bazı kullanıcılar çok dönüşüm sonrası UI’nin yavaşladığını gözlemledi (GC baskısı).
- Abort ağırlıklı trafikte kuyruklanmış stream chunk’ları beklenenden uzun kalabiliyordu.
Kök neden
- Bir iptal (abort) yolu, büyük ArrayBuffer referanslarını (görüntü rasterları + ara mesh buffer’ları) gereğinden uzun süre tuttu.
- Bazı stream yanıtları, istemci bağlantıyı kestiğinde back-pressure kuyruklarını zamanında boşaltmıyordu.
Düzeltme
- Abort anında açık temizleme: Ara buffer’lar aynı tick içinde null’lanıyor ve GC dostu hale getiriliyor.
- Stream finalize sağlamlaştırması: Bağlantı kopunca stream’leri kapatıp yıkıyoruz; kuyruklanmış chunk birikmesini önlüyoruz.
- Takılı kalan dönüşümler için daha agresif timeout (başarılı uzun işlere zarar vermeden).
- If you batch-convert many PNGs to STL, keep the tab open until downloads finish.
- If you cancel conversions frequently, this update prevents memory from creeping over time.
- We also improved abort handling to return faster and free resources sooner.Doğrulama
- Buffer’ların hızlı bırakıldığını doğrulamak için tekrarlı convert/abort stres testleri.
- Stream teardown ve kuyruk temizliğini doğrulamak için bağlantı kopma simülasyonları.
- Uzun oturumlarda sınırsız artış yerine bellek kullanımının plato yapmasının izlenmesi.
Kimler etkilendi?
Bu sorun yalnızca yoğun ve uzun süren oturumlarda fark ediliyordu — örneğin sekmeyi yenilemeden art arda onlarca PNG’yi STL’e dönüştürmek ya da dönüşümleri tekrar tekrar başlatıp iptal etmek gibi. Tek seferlik tipik bir dönüşüm hiç etkilenmedi ve hiçbir çıktı dosyası bozulmadı; mesele tamamen, serbest bırakılması gereken belleğin amaçlanandan uzun süre takılı kalmasıydı.
Bu soruna takılıp takılmadığınızı nasıl anlarsınız?
- Sekme açık kalıp dönüşüm yaptıkça giderek yavaşlıyordu.
- Tarayıcı görev yöneticisinde sekmenin belleği tırmanıyor ve işler arasında geri inmiyordu.
- Belirtiler sayfa yenilenince geçiyordu — bu, bir mantık hatasından çok takılı kalan belleğin klasik işaretidir.
Bu düzeltmeden sonra bellek, uzun oturumlarda sınırsız büyümek yerine plato yapıyor; böylece sekmeyi birçok dönüşüm boyunca açık tutabilir, kademeli yavaşlama yaşamazsınız.
Uzun oturumlarda kararlı sonuç için: Tek bir kaliteli PNG ile başlayın, ölçek/kalınlığı doğrulayın, sonra yeni girdilerle tekrarlayın.
Dönüştür: PNG / SVG → STL dönüştürücü.