2011-11-21 175 views
0

对于提出可能更具体的问题而不是一般概念类型问题,我提前表示歉意。随着时间的推移增加内存使用量

使用Visual Studio 2010,Visual C#中,.NET 3.5,DevExpress的11.1

我们有一个小的应用程序在三个不同的Windows XP上运行嵌入式“平板电脑的”安装在配电箱,每个安装在远程建筑。应用程序与中央数据库进行通信,以便在桌面视图中显示重要事件,并且每秒轮询一次以尽可能保持最新状态。

我在星期一的最后一周开始申请。在像这样的小型设备上,CPU使用率约为5 - 10%,内存使用量开始为25 - 30MB。今天,一个星期后,内存使用量达到了80MB--我在上周监测它,并且一直在增加。

据我所知,尽可能使用“使用”语句来处理所有可丢弃对象。我不知道如何释放内存。如果从30MB开始,它不应该保持在那里吗?

虽然每周都会重新启动应用程序,但XPE没有'taskkill'命令;也没有“关机”命令,因此每周重新启动也不是一种选择。似乎我必须真正优化我的代码。

所以我想我想知道的是什么是非常有限的资源,如平板电脑/瘦客户端,并重新启动应用程序和设备不能自动化的设备上节省内存的好办法?

Thanx。

回答

0

使用内存分析器。 VS 2010中内置了一个分配分析器,并且有很多第三方配置文件,例如ANTS。在你的堆的快照上,你可以看到哪些物体在徘徊。

Using VS2010 Profiler for memory measurement

+0

谢谢。不幸的是,我们使用VS2010专业版,根据您的链接,它不受支持。我会尽快调查一些“记忆分析器”;我知道现在要寻找什么:) – that0th3rGuy

+0

有一个免费的内存分析器从微软, http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13382 我认为是蚂蚁探查器略有更易于使用。有免费试用。 –

相关问题