的极端发展我正在表现出一些非常奇特的问题的应用程序。它运行在2.5小时左右,然后突然非托管内存开始增长,并迅速增长。在大约半个小时左右的时间里,应用程序崩溃。.NET应用程序的经验突然非托管内存
的应用程序未使用任何非托管的DLL。它正在与外部应用程序通信。它使用套接字(通过Stream使用)并通过WCF流进行读取。
我与蚂蚁异形它。非托管内存利用率的突然变化非常惊人;它永远保持完全平坦,然后突然开始上升,并以稳定的速度继续这样做,直到应用程序失败。托管内存中没有任何内容似乎不合适。
既然我没有故意使用非托管代码,这是很难牵制在泄漏的来源。蚂蚁没有帮助。当它从一开始就不是一个稳定的增长时,很难清除代码中的问题(应用程序一直处于空闲状态,尽管它每秒通过具有非常少量数据的套接字来ping服务器一次)。
再次重申,应用程序和服务器都在此期间,两个空闲;这是在独立的测试系统上运行(包括服务器和客户端)。客户是泄漏的客户。
这可能有助于http://stackoverflow.com/questions/1180649/how-to-find-dispose-and-memory-issues-c – hatchet
你是否能够缩小到一个特定的页面或类? –
出于好奇,它生长的速度有多快?它的增长速度大约是每秒*非常少量的数据*的速度吗? –