Asp classic 经典ASP应用程序中的内存泄漏

Asp classic 经典ASP应用程序中的内存泄漏,asp-classic,windbg,Asp Classic,Windbg,我最近继承了一个经典ASP网站的维护,我以前从未做过经典ASP,所以如果我问了一些愚蠢的问题,请原谅我 我的合作开发人员已经检查了每个页面,以确保sql连接已关闭,集合已清空,然后设置为null。然而,这是一个很大的网站,很明显我们之间错过了一些东西 我有一个进程泄漏时的转储(由debug diag执行)。当我使用debug diag执行其内存分析时,它会通知我尚未检测到LeakTrack.dll,因此无法执行泄漏分析 我使用windbg打开了转储,发现一个堆比其他堆大得多,一个堆中有90%的内

我最近继承了一个经典ASP网站的维护,我以前从未做过经典ASP,所以如果我问了一些愚蠢的问题,请原谅我

我的合作开发人员已经检查了每个页面,以确保sql连接已关闭,集合已清空,然后设置为null。然而,这是一个很大的网站,很明显我们之间错过了一些东西

我有一个进程泄漏时的转储(由debug diag执行)。当我使用debug diag执行其内存分析时,它会通知我尚未检测到LeakTrack.dll,因此无法执行泄漏分析

我使用windbg打开了转储,发现一个堆比其他堆大得多,一个堆中有90%的内存。但是,当我试图将这些块追溯到分配它们的调用堆栈时,我总是会得到以下结果:

invalid allocation size, possible heap corruption

有没有更好的方法来跟踪泄漏的来源?或者您有没有关于如何创建更好的进程转储的技巧,以便我可以检查泄漏的来源?

这些泄漏持续时间超过一页?一旦页面完成,所有页面本地内容都应该清理并释放。在不了解您的应用程序的情况下,我建议您查看更久违的对象。您是否在会话或应用程序中存储了任何内容?

否,应用程序中未存储任何内容,会话几乎未被使用。奇怪的是,你可以用相同的参数点击相同的页面100次,并且没有问题,然后看起来是随机的,你会得到一个巨大的内存使用峰值。很难复制,很难追踪。听起来不像是ASP的问题。