我写了一些Windows应用程序
我将它安装在拥有Windows Server 2008的虚拟服务器(vmware)上,由于某种原因,应用程序变得越来越大。我使用perfmon以查看可能存在内存泄漏 - 但据我所知,没有:
这是任务管理器中的过程:
还有两个使用大量内存和cpu但仍稳定且不会像SimeserManager.exe那样增长的进程。
内存增长减慢了该服务器所持有的冲浪速度。 在本周之前,我在使用Windows Server 2003的phizical服务器上使用了我的应用程序,并且没有冲浪问题。由于我不再使用它,我无法恢复电脑中的坐标,但我不相信使用phizical服务器时存在内存错误。
该应用程序使用visual studio 2010以c#.net编写。
可能是什么问题?
我在哪里可以获得一些线索?
更新
我得到ANTS内存分析器并试图寻找问题。我创建了内存快照,结果如下:
现在我真的迷路了。
我尝试了标准过滤器,但没有找到解决问题的线索。在图像中,您可以看到私有字节增加。这是否存在内存泄漏?
谁能给我一些线索如何继续?
谢谢!
答案 0 :(得分:1)
我们这里没有足够的信息来真正调试您的应用程序。但是,您可以使用工具在应用程序中识别和解决此问题。我建议您使用RedGate的ANTS Memory Profiler来帮助您查找问题。这是一个链接:
http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/
它不是免费的,但它便宜且非常有效。获得14天免费试用版并在您的应用程序上运行它。我甚至会说,如果它没有找到问题,问题可能与您的申请无关。
对于占用大量内存的其他进程,这是正常的。 SQL Server尝试获取尽可能多的内存。如果您不小心,在与SQL Server相同的盒子上运行其他应用程序可能会导致性能问题。这是一篇关于SQL Server如何使用内存的好文章:
对于IIS内存使用情况(使用大量内存的其他进程),可能有多种原因。我建议你通读这个论坛,以便更好地了解它可能是什么(如果真的是一个问题):