应用程序在启动时使用超过 1GB 的 RAM
Application uses over 1GB of RAM on startup
我已经在这个应用程序上工作了一段时间,现在快完成了,所以我决定开始修复一些问题,比如高内存使用率。
我正在使用 Visual Studio 2022,它是 .NET Framwork 4.8 C# Form 应用程序。在表单上,我有几个页面控件,每个控件都有 2-5 个选项卡。我有几个拆分面板容器,它们都有按钮、标签和文本框。我在全局声明了最少的变量(总共 6 个),我尝试在本地声明所有变量。我还有 1 个 class.
启动时,诊断工具显示应用程序正在使用 1.2GB 的 RAM。在任务管理器中,它还显示它正在使用大约 1.2GB 的 RAM。我使用 GC.Collect()
将其降低到 550G。有什么方法可以降低 RAM 使用率还是正常情况?如果我没有提供足够的信息,请告诉我,我会尽我所能。
编辑:感谢 Juanjo、Joe Sewell 和 Hans Passant,问题已解决。
我有数百个一次性组件。还没有完成所有这些,但这将使我的 RAM 使用量降至 550MB。我确实有一个小数据库,但它在程序开始时没有连接。导致 RAM 从 550MB 增加到 29MB 的最后一个问题是我拥有的图像列表中的一些图像未被使用。感谢三位的帮助,从1.2GB到29MB。
这可以是任何东西。没有项目和调试很难知道。尽管如此,GC.Collect()
将它降低到一半,知道很少有需要调用 GC.Collect()
的情况让我怀疑你正在使用 IDisposable
组件而你没有调用 Dispose()
.
查看您正在使用的一些对象,如果它们具有 Dispose()
方法,以及它们是否使用 using pattern for C# 在您使用完这些对象后处理这些对象。
希望对您有所帮助。再次没有项目很难知道。
我已经在这个应用程序上工作了一段时间,现在快完成了,所以我决定开始修复一些问题,比如高内存使用率。
我正在使用 Visual Studio 2022,它是 .NET Framwork 4.8 C# Form 应用程序。在表单上,我有几个页面控件,每个控件都有 2-5 个选项卡。我有几个拆分面板容器,它们都有按钮、标签和文本框。我在全局声明了最少的变量(总共 6 个),我尝试在本地声明所有变量。我还有 1 个 class.
启动时,诊断工具显示应用程序正在使用 1.2GB 的 RAM。在任务管理器中,它还显示它正在使用大约 1.2GB 的 RAM。我使用 GC.Collect()
将其降低到 550G。有什么方法可以降低 RAM 使用率还是正常情况?如果我没有提供足够的信息,请告诉我,我会尽我所能。
编辑:感谢 Juanjo、Joe Sewell 和 Hans Passant,问题已解决。
我有数百个一次性组件。还没有完成所有这些,但这将使我的 RAM 使用量降至 550MB。我确实有一个小数据库,但它在程序开始时没有连接。导致 RAM 从 550MB 增加到 29MB 的最后一个问题是我拥有的图像列表中的一些图像未被使用。感谢三位的帮助,从1.2GB到29MB。
这可以是任何东西。没有项目和调试很难知道。尽管如此,GC.Collect()
将它降低到一半,知道很少有需要调用 GC.Collect()
的情况让我怀疑你正在使用 IDisposable
组件而你没有调用 Dispose()
.
查看您正在使用的一些对象,如果它们具有 Dispose()
方法,以及它们是否使用 using pattern for C# 在您使用完这些对象后处理这些对象。
希望对您有所帮助。再次没有项目很难知道。