如何检测表单上所有控件使用的内存量?

时间:2011-03-11 09:53:01

标签: c# .net winforms controls memory-management

假设我在Windows窗体上有很多控件。有没有办法知道每个控件使用了多少内存?有没有可以显示内存信息的免费工具?感谢。

3 个答案:

答案 0 :(得分:3)

Windows窗体控件不仅仅是内存。事实上,由于内存非常便宜且可用,它很少成为瓶颈 - 尤其是托管内存。

您需要记住,Windows窗体控件使用的是WIN32窗口对象,其中包含窗口句柄和各种WIN32 GDI对象。它们作为托管对象在堆上也存在,但托管内存使用量不会很大。

要回答您的问题,您可以使用memory profilers

答案 1 :(得分:2)

答案 2 :(得分:1)

只有这样才能获得有关控件内存使用情况的信息,每个控件都旨在提供此类信息。但是,大多数简单的类(如“字符串”)都不提供它,您必须猜测或谷歌确定其大小。

对于GUI控件 - 有些是HWND绑定的,有些则不是。有些附加了一些其他手柄,有些没有。有些拥有一些共享资源,因此控件(或组)的第一个实例将增加内存使用量,第二个实例将不会增加,等等......