IronPDF'de Bellek Sızıntılarını Düzeltme
IronPDF'de belirgin bir bellek sızıntısı yaşıyorsanız, bunu bilmek istiyoruz. En kıdemli mühendislerimiz, tanımlandıktan sonra hızlı bir düzeltme üzerinde çalışmak için bir bellek sızıntısına yoğunlaşacaktır.
support@ironsoftware.com adresine bir bellek sızıntısını şu şekilde bildirin:
1. IronPdf'ın en son sürümüne güncelleyin
Eğer henüz yapmadıysanız, lütfen IronPdf'ın en son sürümüne güncelleyin.
2. IDisposable Nesnelerinizi Elden Çıkardığınızdan Emin Olun
.NET IDisposable arayüzünün hatalı kullanımı, bildirilen bellek sızıntılarının büyük çoğunluğunun nedenidir.
Eğer herhangi bir .NET sınıfının Dispose() metodu varsa - muhtemelen IDisposable'dir ve geliştiricinin kullanmayı bitirdiğinde onu söylemesi gerekecektir.
C#'nin bir "yönetilen" dil olduğu ve belleği yönetmek için geliştirilmiş sorumluluğa ihtiyaç duymadığına dair yaygın bir yanlış anlama vardır. Bu inancın aksine, geliştiricilerin ihmal ettiği birçok yaygın .NET nesnesi vardır.
- IDisposable uygulayan nesneleri kullanma
- C# .NET'te Bellek Sızıntılarını Bulun, Düzeltin ve Önleyin: 8 En İyi Uygulama
Her IDisposable sınıf örneğini manuel olarak elden çıkarmamak kodunuzda bir bellek sızıntısına neden olabilir.
- System.IO.Stream -
PdfDocument.Streamözelliği tarafından döndürülen. - System.Drawing.Image / System.Drawing.Bitmap -
PdfDocument.PageToBitmapmetodu tarafından döndürülen. - IronPdf.PdfDocument - kendisi de 2021 - 2024 sürümlerimizde yönetilmeyen nesneler içerebileceğinden
IDisposableolarak işaretlenmiştir.
En yaygın çözüm
En iyi çözüm genellikle IDisposable nesnelerine atıfta bulunurken bir using ifadesi kullanmaktır.
using(var stream = myPdfDocument.Stream) {
// Perform operations with the stream here
}
using(var stream = myPdfDocument.Stream) {
// Perform operations with the stream here
}
Using stream = myPdfDocument.Stream
' Perform operations with the stream here
End Using
C# 8'de, {} kapanışları olmadan bir kısa yol versiyonu bile vardır.
using var stream = myPdfDocument.Stream;
// Perform operations with the stream here
using var stream = myPdfDocument.Stream;
// Perform operations with the stream here
Dim stream = myPdfDocument.Stream
' Perform operations with the stream here
3. Çöp Toplama
Visual Studio hata ayıklayıcı bellek profili, hiçbir sorun olmasa bile artış göstermeye devam edebilir. Yüksek RAM'li bir sistem kullanırken, .NET çalışma zamanı, sistem RAM'inin neredeyse dolmasına kadar çöpün bellekte kalmasına izin vermenin daha verimli olduğunu belirleyebilir veya tutmak için bir takas dosyası kullanabilir.
.NET çöp toplayıcının kullanılmayan nesnelerini uygulama yaşam döngünüzde güvenli bir noktada imha etmesine manuel olarak talimat vermek mümkündür:
- Bir PDF oluşturmuyorken
- Bir
IDisposablenesnesi açıktır
Bunu yapmanın bir yolu:
System.GC.Collect(); // Invokes the garbage collector
System.GC.WaitForPendingFinalizers(); // Waits for the process to complete
System.GC.Collect(); // Optional: Runs additional collection to ensure all objects are cleared
System.GC.Collect(); // Invokes the garbage collector
System.GC.WaitForPendingFinalizers(); // Waits for the process to complete
System.GC.Collect(); // Optional: Runs additional collection to ensure all objects are cleared
System.GC.Collect() ' Invokes the garbage collector
System.GC.WaitForPendingFinalizers() ' Waits for the process to complete
System.GC.Collect() ' Optional: Runs additional collection to ensure all objects are cleared
Bundan sonra, bellek kullanım grafiği normal, ancak sıfır olmayan bir seviyeye düşmelidir.
4. Hâlâ Bellek Sızıntınız Varsa - Bildirin
Bu, son derece yüksek bir öncelik olarak değerlendirilecektir. Yeni bilgi taleplerinin bulunmaması için log dosyalarınızı nasıl bulacağınızı ve sorununuzu nasıl rapor edeceğinizi açıklayan bu kılavuzu okuyun.
Bu 3 dakikalık okuma, sorununuzu %100 doğrulukla yeniden üretmemize yardımcı olacak, böylece zamanınızı boşa harcamayacağız.
Teşekkürler - Kimse bellek sızıntılarını sevmez, biz de sevmiyoruz. HTML işleme, Interop, Grafikler ve Akışlar gibi "düşük seviyeli" veya sistem nesneleri ile çalışırken, bunlar mümkün hale gelir. O halde, haydi onları düzeltelim!
IronPDF, kullanıcılarımızın hata raporları ve özellik isteklerini dinleyerek bugünkü haline geldi, bu yüzden desteğiniz için teşekkür ediyoruz.

