我有一个多线程服务器应用程序,用'c'编写,可以执行很多网络/ tcp工作。在一个客户系统上,服务器以每天约200mb的速率泄漏内存。服务器正在运行Windows 2012r2
我的内部内存分配功能不记录泄漏。
使用CRTDBG函数分析总内存使用量也不会记录泄漏。
我们使用所有私有dll记录所有内存分配,并且不显示任何内存泄漏。
正在使用的唯一其他dll是标准默认库。
这是一个32位版本。
我已经消除了通常的嫌疑人: 1)线程创建/销毁,如果我重新使用线程,泄漏保持不变。 2)内存碎片导致明显的泄漏,我使用非碎片malloc,我已经尝试预先分配所有需要的内存,这样就不会发生碎片,而且它仍然会以相同的速率泄漏。
泄漏显示为峰值工作集,或私人工作集缓慢增加。
我在taskmanager中看不到任何句柄泄漏。
所以,我没有想法。请提出疯狂的建议,了解其他内存可能会占用多少内存,而不是由CRTDBG内存记录功能记录下来。
谢谢堆! (双关语): - )