在进行需要很大内存空间的计算时,非常容易发生OutOfMemoryException
System.Runtime.MemoryFailPoint提供了在运行需要大内存的计算前进行内存检查的功能
在调用该方法的时候执行了以下步骤(如果不完全确定所需的内存大小,可以传近似值)
1.检查系统的页面文件是否有足够大的可用空间,检查进程中是否有足够的连续虚拟地址空间
2.如果这里没有足够的空间,就会启动GC尝试回收一些内存
3.如果GC之后依然没有足够的页面文件空间,,尝试扩大页面文件,如果页面文件大小还是没法达到要求,抛出InsufficientMemoryException
4.如果进程中没有足够的连续虚拟地址空间,抛出InsufficientMemoryException
5.如果存在足够的内存和连续虚拟地址空间,那么需求的内存将被预留,并将代表内存大小的值添加在MemoryFailPoint的一个静态字段里
6.操作是线程安全的
PS:InsufficientMemoryException继承于OutOfMemoryException
如果操作过程没有InsufficientMemoryException抛出,就说明你已经预留了足够的内存用于你的计算,但是这些内存并没有在物理上已经分配给你,这意味着预留内存成功并不意味着你的程序一定能执行成功,这个类存在的意义是为了帮你编写更健壮的程序
此外,在操作完成时需要调用MemoryFailPoint.Dispose(该方法内部减少了刚才保存数值的那个字段)
分享到:
相关推荐
C#框架设计第三版(CLR via C# 3rd Edition)-学习C#最经典的书籍-2010年2月刚出版
### CLR via C# 第四版知识点解析 #### 一、书籍概述 《CLR via C#》是一本由著名软件架构师Jeffrey Richter撰写的、深入探讨C#语言与公共语言运行时(Common Language Runtime, CLR)之间关系的经典著作。本书自...
C#框架设计第三版(CLR via C# 3rd Edition)-学习C#最经典的书籍-2010年2月刚出版
根据提供的文件信息,“CLR via C# 第4版.pdf”似乎是一本关于C#语言与CLR(Common Language Runtime)之间关系的专业书籍。尽管没有直接提供书中的具体内容,但我们可以根据标题、描述以及常见知识点来推断本书可能...
CLR via C# (中文第4版) 完整版-第四卷,共5卷,请在点击上传作者账户资源进行完整下载(csdn最大只能传70MB的文件)
《CLR via C# 第4版》是一本由微软.NET框架的首席架构师斯科特·盖尔茨( Jeffrey Richter)撰写的经典之作。这本书详细深入地探讨了.NET Common Language Runtime (CLR) 的各个方面,是.NET开发者理解底层平台运作...
本书是全球享有盛誉的技术作家Jeffrey Richter的经典书籍CLR via C#最新版第四版。 本书针对clr、C#5.0和.net framework 4.5进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。 本书深入、...
clr-via-csharp针对CLR和.NET Framework 4.0进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。全书5部分29章。第Ⅰ部分介绍CLR基础,第Ⅱ部分解释如何设计类型,第Ⅲ部分介绍基本类型,第...
### CLR via C#, 第四版 #### 书籍概述 《CLR via C#, 第四版》是一本由全球知名技术作家杰弗里·里希特(Jeffrey Richter)撰写的经典著作,该书针对.NET Framework、Common Language Runtime (CLR) 和 C# 5.0 ...
NET CLR via C#(第4版)中文版(百度网盘链接地址)
《CLR via C# 第四版》是一本深入探讨.NET Framework公共语言运行库(Common Language Runtime, CLR)的经典著作,由知名技术专家Jeffrey Richter撰写。这本书是.NET开发者提升技能的重要资源,尤其对于想要深入了解...
《CLR via C#》是微软资深开发者、技术专家杰里米·金(Jeffrey Richter)撰写的一本经典著作,该书深入解析了.NET Framework的公共语言运行时(Common Language Runtime, CLR)以及如何利用C#语言进行高效编程。...
《CLR via C# 第四版示例源码》是一份宝贵的学习资源,它包含了著名作者 Jeffrey Richter 在其经典著作《CLR via C#》第四版中提到的各种代码示例。这本书深入探讨了.NET Common Language Runtime (CLR) 的内部工作...
《CLR via C#》是微软资深开发人员Jeffrey Richter所著的一本经典书籍,主要讲解了.NET Framework的公共语言运行时(Common Language Runtime, CLR)以及如何通过C#语言来充分利用它的特性。这本书的第3版包含了最新...
本朽针对 CLR 和. NE 丁 F ? , 0 唯 4 _ 5 进行浑入、全面的探讨,设计、开发和调试.全书 5 部分共 29 章。第 l 部分介绍 CLR 基础.分介 tlI 从本类贬.第 I ' V 部分以核心机制为毛脱,并结合实例介绍了如何利用...
### CLR via C# 第四版概述 《CLR via C#》是C#编程领域的一本经典著作,由知名作者Jeffrey Richter编写。本书第四版于2012年由Microsoft Press出版,对.NET Framework 4.5以及Visual Studio 2012进行了全面更新与...
《CLR via C#(第4版)》是著名软件开发者Jeffrey Richter的力作,专为深入理解和应用.NET Framework 4.5的公共语言运行时(CLR)和C#编程语言而编写。这本书不仅提供了丰富的理论知识,还包含了大量的实践示例,...
CLR via C#(第3版)CLR via C#(第3版)CLR via C#(第3版)
从给定的信息来看,这份资料主要涉及的是《CLR via C#》这本书的相关内容。下面将对这本书中的核心知识点进行详细的解读。 ### 书籍简介 《CLR via C#》是一本介绍微软.NET框架的核心部分——公共语言运行时...