gpt4 book ai didi

vb.net - .NET WinForm 内存消耗

转载 作者:行者123 更新时间:2023-12-02 05:47:07 25 4
gpt4 key购买 nike

我一直在使用“.NET Memory Profiler”分析 WinForm 的应用程序。

根据 Windows 任务管理器,我似乎不太明白我的应用程序的使用量如何增长到 1GB、然后 2GB、然后 3GB。

使用该工具的私有(private)字节和“所有堆中的总字节数”仅显示为 70MB 左右。在我的实例列表的顶部,它们大多是字符串,或者是对许多小对象的弱引用。

应用程序所做的只是显示一个从数据库加载数据的表单。我重复表单的显示/处理循环大约 100 次,并且增长是连续的。

我现在已经尝试了大约 3 个内存分析工具,但没有一个能够告诉我如此大量的内存消耗来自何处。

任何人都可以帮忙或猜测一下它可能是什么吗?

谢谢。

最佳答案

Is this a known issue for VB.NET apps?

是的。这是编译到可执行文件中的“编辑+继续”支持的副作用。它受到使用 WithEvents 关键字声明的任何事件的影响。 WeakReference 会跟踪这些事件实例。问题是,如果您在没有调试器的情况下运行应用程序,这些弱引用就会泄漏。进程消耗内存的速率很大程度上取决于创建的类实例的数量。每个对象的每个事件泄漏 16 个字节。

解决方法很简单,不要在没有调试器的情况下使用应用程序的调试版本。仅使用发布版本。当然,仅将发布版本发送给您的客户。

关于vb.net - .NET WinForm 内存消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com