【问题标题】:Memory Leaks in a Classic ASP application经典 ASP 应用程序中的内存泄漏
【发布时间】:2011-07-28 16:12:07
【问题描述】:

我最近继承了一个经典ASP网站的维护,之前没做过经典ASP,所以如果我问愚蠢的问题请见谅。

我的合作开发者已经浏览了每个页面,以确保关闭 sql 连接,清空集合,然后将其设置为 null。然而,这是一个大型网站,显然我们之间漏掉了一些东西。

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

我使用 windbg 打开了转储,发现一个堆比其他堆大得多,其中 90% 的内存在一个堆中。但是,当我尝试将块追踪回分配它们的调用堆栈时,我总是会得到:

invalid allocation size, possible heap corruption

有没有更好的方法来尝试跟踪泄漏的来源?或者您对如何创建更好的进程转储有任何提示,以便我可以检查泄漏的来源?

【问题讨论】:

    标签: asp-classic windbg


    【解决方案1】:

    这些泄漏会持续超过一个页面吗?一旦页面完成,所有页面本地的东西都应该被清理和释放。在不了解您的应用程序的更多信息的情况下,我建议您查看长期喜爱的对象。您是否在 Session 或 Application 中存储任何内容?

    【讨论】:

    • 不,应用程序中没有存储任何内容,几乎不使用会话。奇怪的是,您可以使用相同的参数访问同一个页面 100 次并且没有任何问题,然后看似随机,您将获得内存使用量的巨大峰值。难以复制,更难追踪。
    • 听起来不像是 ASP 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多