IRONSOFTWAREHOME

修复 IronPDF 中的内存泄露

Curtis Chau
Curtis Chau
Updated: 2026年4月22日

如果您在使用IronPDF时遇到明显的内存泄漏,我们希望了解这一情况。 我们最资深的工程师将集中力量解决一旦确定的内存泄漏问题。

以下是向support@ironsoftware.com报告内存泄漏的方法:

1. 更新至最新的IronPDF版本

如果您尚未如此,请更新至最新的IronPDF版本。

2. 确保您已处理完您的IDisposable对象

.NET IDisposable接口的不当使用是导致内存泄漏的主要原因。

如果任何.NET类有一个IDisposable,开发者需要通知它何时使用完成。

有一个常见的误解,认为C#是一种"托管"语言,不需要开发人员负责管理内存。 与这种观点相反,实际上有许多常见的.NET对象开发人员未能释放。

未能手动处理每个IDisposable类实例可能会导致代码中的内存泄漏。

  • System.IO.Stream - 由PdfDocument.Stream属性返回。
  • System.Drawing.Image / System.Drawing.Bitmap - 由PdfDocument.PageToBitmap方法返回。
  • IronPdf.PdfDocument - 自身也标记为IDisposable ,因为它可能包含在我们2021-2024年发布的版本中的非托管对象。

最常见的解决方案

最佳解决方案通常是在引用using语句

using(var stream = myPdfDocument.Stream) {
    // Perform operations with the stream here
}

在C# 8中,甚至有一个没有{}闭包的简写版本。

using var stream = myPdfDocument.Stream;
// Perform operations with the stream here

3. 垃圾回收

即使没有问题,Visual Studio调试器内存分析器可能仍然显示增长。 在使用高RAM系统时,.NET运行时可能会认为让垃圾留在内存中直到系统RAM几乎满时甚至使用交换文件是更高效的。

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

  • 未渲染PDF时
  • 一个IDisposable对象是打开的

实现这种操作的一种方法是:

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

在此之后,内存使用图表应下降到正常但非零水平。

4. 如果您仍然有内存泄漏 - 请报告

这将被视为极高优先级处理。 请阅读本指南,其中解释了如何找到您的日志文件并报告问题,这样不会需要额外的信息。

这份3分钟的阅读将帮助我们以100%的准确性重现您的问题,确保我们不浪费时间。

工程请求PDF

谢谢您 - 没有人喜欢内存泄漏,包括我们。 在处理HTML渲染、Interop、图形和流等"低级"或系统对象时,它们有可能发生。 所以,让我们修复它们吧!

IronPDF能够发展到今天的程度,是因倾听用户的错误报告和功能请求,所以感谢您的支持。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 21,105,021版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起