如何避免System.OutOfMemonryException异常
2010-11-03 14:27 田志良 阅读(2142) 评论(0) 编辑 收藏 举报在什么情况下会出现OutOfMemonryException呢?第一种情况:在试图新建一个对象时,垃圾收集器找不到任何可用内存,会抛出该异常,这种情况,我们是可以捕获该异常的;另一种情况是:CLR需要内存,而系统却不能提供,也会抛出该异常, 但此时,应用程序不能捕获该异常。
第一种情况主要是由于过多使用托管内存导致的,在什么情况下会过多使用托管内存呢?
1. 将大型数据集读入内存中。
2.创建过多的缓存条目。
3. 上载或下载大文件。
4. 在分析文件时过多地使用正则表达式或字符串。
5. 过多的视图状态。
6. 会话状态中有过多的数据或者会话过多。
7.创建线程过多。
下面我们来谈谈第二种情况。对于Win32操作系统,一个进程所能占用的所有内存空间只有2G。当进程占用的内存达到2G时,会引发OutOfMemoryException异常,进程崩溃。怎样扩大一个进程所占用的内存空间呢?可选的解决方法有两个:
1、使用/3GB模式启动计算机,方法: http://technet.microsoft.com/zh-cn/library/bb124810%28EXCHG.65%29.aspx。
2、使用Windows Server 2003 64bits Edition。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器