【C# .Net GC】GC内存分配原则
2022/2/24 7:23:37
本文主要是介绍【C# .Net GC】GC内存分配原则,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
GC 管理内存分配和回收
公共语言运行时的垃圾回收器为应用程序管理内存的分配和释放。
https://docs.microsoft.com/zh-cn/dotnet/standard/automatic-memory-management
GC内存分配原则
暂时代:因为第 0 代和第 1 代中的对象的生存期较短,因此,这些代被称为“暂时代”。
暂时段:暂时代在称为“暂时段(段:Segment)”的内存段中进行分配。 垃圾回收器获取的每个新段将成为新的暂时段,并包含在第 0 代垃圾回收中幸存的对象。 旧的暂时段将成为新的第 2 代段。
第 2 代段:保存第二代对象(大对象 以及暂时代的幸存对象)的内存段。
根据系统为 32 位还是 64 位以及它正在哪种类型的垃圾回收器(工作站或服务器 GC)上运行,暂时段的大小发生相应变化。 下表显示了暂时段的默认大小。
Segment的大小取决于系统是32位还是64位,以及它正在运行的垃圾收集器的类型,下表列出了分配时系统所使用的默认值:
GC 类型 | 32-bit | 64-bit |
---|---|---|
Workstation(工作站) GC | 16 MB | 256 MB |
Server GC(服务器) | 64 MB | 4 GB |
Server GC with > 4 logical(逻辑) CPUs | 32 MB | 2 GB |
Server GC with > 8 logical(逻辑) CPUs | 16 MB | 1 GB |
暂时段可以包含第 2 代对象。 第 2 代对象可使用多个段(在内存允许的情况下进程所需的任意数量)。
从暂时垃圾回收中释放的内存量限制为暂时段的大小。 释放的内存量与死对象占用的空间成比例。
这篇关于【C# .Net GC】GC内存分配原则的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#