OutOfMemoryException是ASP.Net应用程序

时间:2011-04-26 14:17:30

标签: out-of-memory

我在ASP.Net应用程序中获得了OOM异常,并且发现这可能是由于在抛出异常时发生了大量字符串操作,例如s1 = s1.Replace()s1 = s1.SubString()

如果它们按顺序发生,是否可以从这些操作中获取OOM异常?请求的数量并不多,但GC是否可能在堆上进行新的分配之前及时释放内存?

换句话说:以下代码是否可以提供OOM异常,或者在我们到达OOM异常之前GC是否会释放大量未引用的字符串?

string s = "hello world";
while (true)
{
  s = s.Replace("h", "h");
}

1 个答案:

答案 0 :(得分:0)

对于你的问题,这不是一个真正的答案,更多的是建议你想要调试困难的内存问题。

我发现Tess Ferrandez是一个非常宝贵的信息来源,可以解决那些难以预防的问题。她使用Windbg,它有着相当陡峭的学习曲线 - 但它可以让你弄清楚占用内存的原因和原因。

如果您有兴趣调试此问题,我建议您从labs开始,或者ASP.Net memory investigation帖子可能会让您选择正确的课程