IT
OmnvertGörsel • Belge • Ağ
10 Nis 2026Updated: 23 Haz 2026stl · worker · stability · performance

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).
Operasyon notutext
- 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.

Önerilen iş akışı

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ü.

İlgili