最近我们观察到我们的应用服务器内存随着一些客户端API的增加而增加,最终导致崩溃。
所以我们尝试使用boundschecker,它显示没有内存泄漏,并导致内存增加时崩溃(私有字节增加)。在过程探索MS(sysinternals)中验证。
那么有没有办法获得如何按顺序(函数调用)分配内存,或按顺序分配句柄。所以我们可以在这个位置上获得记忆力。
我们希望捕获来自所有线程的所有函数调用。我们也不能用太多代码来代码,因为它是thousnads代码行。
答案 0 :(得分:1)
如果找不到任何内存泄漏,很可能会出现句柄泄漏 - 您甚至可以在任务管理器中通过选择列列表中的“处理计数”来检查此问题。 Process Explorer应该能够显示应用程序中的打开句柄列表。这可能不是按顺序排列,但它应该让您了解泄漏的资源类型 - 通常,所有泄漏都来自应用程序的同一区域,这可能会随着时间的推移而累积并导致崩溃。