应用程序在启动时使用超过1GB的RAM



我已经在这个应用程序上工作了一段时间了,现在它几乎完成了,所以我决定开始修复一些东西,比如高内存使用。

我使用的是Visual Studio 2022,它是。net framework 4.8 c# Form应用程序。在表单上,我有几个页面控件,每个控件有2-5个选项卡。我有几个分割面板容器,他们都有按钮,标签和文本框。我有最小的变量声明全局(总共6),我试图声明所有的变量局部。我有一节额外的课。

在启动时,诊断工具显示应用程序正在使用1.2 gb的RAM。在任务管理器中,它还显示它使用了大约1.2 gb的内存。我用GC.Collect()把它降到550G。是否有一种方法可以降低RAM使用,或者它是正常的?如果我没有提供足够的信息,请告诉我,我会尽我所能。

编辑:多亏了Juanjo, Joe Sewell和Hans Passant,这个问题已经解决了。

我有数百个一次性组件。我没有做所有这些,但这将使我减少到550MB的内存使用。我确实有一个小数据库,但在项目开始时没有连接。最后一个使RAM从550MB变为29MB的问题是我拥有的映像列表中的一些未使用的映像。感谢你们三个的帮助,从1.2 gb到29MB。

可以是任何东西。没有项目和调试很难知道。尽管如此,GC.Collect()将其降低到一半,知道有很少的情况下需要调用GC.Collect(),这使我怀疑您正在使用IDisposable组件,而不是调用Dispose()

看看你正在使用的一些对象,如果它们有Dispose()方法,如果它们使用c#的using模式来处理这些对象,当你完成它们。

我希望它有帮助。同样,没有项目很难知道。

最新更新