gpt4 book ai didi

c# - 什么导致asp.net内存不足异常

转载 作者:行者123 更新时间:2023-11-30 16:19:51 25 4
gpt4 key购买 nike

我有一个简单的 asp.net 网站,它将一个大文本文件读入内存并进行一些处理。下面是引发 OOM 异常的代码。在阅读了大约 350k 行之后,我得到了这个错误。每行平均有 1k 个字符。 IIS 或 ASP.Net 网站是否有内存限制?我的服务器仍然有足够的物理内存。谢谢。

List<string> geos = new List<string>();
using (StreamReader geoReader = new StreamReader(File.OpenRead("file.txt")))
{
while (geoReader.EndOfStream == false)
{
try
{
geos.Add(geoReader.ReadLine());
}
catch (Exception ex) { }
}
}

最佳答案

您的工作进程很可能配置为 32 位 (x86)。在这种情况下,您至少会在大约 2GB 的已分配对象上遇到 OOM,但很可能更早。

如果您确实需要在内存中加载超过 1GB 的对象,请考虑在 64 位进程中运行您的代码。

注意:以上假设您实际上内存不足,而不是尝试一次分配 2GB 以上的内存 - 默认情况下会抛出 OOM(据我所知,最新的 .Net 允许更大的分配)。

关于c# - 什么导致asp.net内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14928353/

25 4 0
文章推荐: c# - Windows 应用商店应用程序开发 - InvalidateRequerySuggested
文章推荐: javascript - 这段代码中发生了什么,以及在没有 "with"关键字的情况下以下代码的基本实现是什么
文章推荐: javascript - AngularJS:如何更改使用 ng-repeat 渲染的按钮文本 onclick
文章推荐: javascript - 我如何捕获在我的容器