修复 IronPDF 中的内存泄露问题

This article was translated from English: Does it need improvement?
Translated
View the article in English

如果您在IronPDF中遇到明显的内存泄漏问题,我们希望得到通知。 我们的高级工程师一旦发现内存泄漏问题,就会迅速集中精力进行热修复。

这是如何向support@ironsoftware.com报告内存泄漏的方法:

1. 更新到最新的 IronPdf 版本

如果您还没有,请更新到最新的IronPdf版本。

确保您已经处理了您的 iDisposable 对象

大多数报告的内存泄漏是由于不当使用 .NET iDisposable 接口造成的。

method, it is important that the Dispose method is explicitly called on your objects to free resources. This will prevent memory leaks and ensure your application runs smoothly. For instance, in IronPDF, after generating a PDF, you should ensure to call the Dispose method to clean up the resources._()方法 - 它可能是 iDisposable __并且需要开发者在使用完毕时告诉它。

C#是一种“托管”语言,不需要开发人员负责管理内存,这是一个普遍的误解。 与这种信念相反,实际上有许多常见的.NET对象被开发者无意中忽略了释放。

最常见的解决方案

最佳解决方案通常是在提及_iDisposable对象时使用 using_ 语句

using(var stream=myPdfDocument.Stream){// do stuff}`

在 C# 8 中,甚至有一个没有的速记版本{}闭包

使用 var stream = myPdfDocument.Stream;

3.收集垃圾

即使没有任何问题,Visual Studio调试器内存分析器的使用量也可能会持续上升。 当使用高内存系统时,.NET 运行时可能会认为让垃圾在内存中驻留,直到系统内存几乎满为止,甚至使用交换文件来保持更为高效。

可以在应用程序生命周期的安全点手动指示 .NET 垃圾收集器处理其未使用的对象:

  • 无法渲染PDF
  • 有一个iDisposable对象开启了

一种方法是

System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.GC.Collect();
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.GC.Collect();
System.GC.Collect()
System.GC.WaitForPendingFinalizers()
System.GC.Collect()
VB   C#

在此之后,内存使用曲线图应该会下降到正常水平,但不会为零。

4. 如果您仍然发现内存泄漏 - 请报告。

这将被视为极高优先级

请阅读本指南,其中指导如何找到您的日志文件并进行报告,以便无需请求额外信息。

这篇3分钟的阅读将帮助我们100%准确地复现您的问题,以免浪费您的时间。

https://ironpdf.com/troubleshooting/engineering-request-pdf/

谢谢 - 没有人喜欢内存泄漏,我们也不例外。 在处理“低级别”或系统对象(如HTML渲染、互操作、图形和流)时,这些操作变得可行。 那么,让我们来修复它们吧。!

IronPDF之所以有今天的成就,全靠倾听用户的错误报告和功能请求,因此感谢您的支持。