Net内存管理五大基础是什么?

2026-04-01 10:000阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1649个文字,预计阅读时间需要7分钟。

Net内存管理五大基础是什么?

目录

1.小对象如何处理的

2.较大对象会如何

3.垃圾收集器在不同模式下的性能优化

4.引用不足在性能和内存效率间的权衡

5.对象固定可创建在托管和非托管代码间传递

目录
  • 1.小对象怎么处理的?
  • 2.较大的对象会怎样?
  • 3.垃圾收集器可以在不同的模式下运行以优化性能
  • 4.引用不足会在性能和内存效率之间折衷
  • 5.对象固定可以创建在托管和非托管代码之间传递的引用

1.小对象怎么处理的?

小型.NET对象被分配到小型对象堆(SOH)上。其中有3种:第0代,第1代和第2代。对象根据其寿命向上移动。

将新对象放在Gen 0上。当Gen 0充满时,.NET垃圾收集器(GC)运行,处理不再需要的对象,并将其他所有内容移至Gen1。如果Gen 1充满,则GC再次运行,也可以将Gen 1中的对象移动到Gen 2中。

Gen 2变满时,将发生GC完全运行。这将清除不需要的Gen 2对象,将Gen 1对象移至Gen 2,然后将Gen 0对象移至Gen 1,最后清除所有未引用的内容。每次运行GC之后,都会压缩受影响的堆,以将仍在使用的内存保持在一起。

这种代代相传的方法可确保事情高效运行-耗时的压缩过程仅在绝对必要时才会发生。

阅读全文

本文共计1649个文字,预计阅读时间需要7分钟。

Net内存管理五大基础是什么?

目录

1.小对象如何处理的

2.较大对象会如何

3.垃圾收集器在不同模式下的性能优化

4.引用不足在性能和内存效率间的权衡

5.对象固定可创建在托管和非托管代码间传递

目录
  • 1.小对象怎么处理的?
  • 2.较大的对象会怎样?
  • 3.垃圾收集器可以在不同的模式下运行以优化性能
  • 4.引用不足会在性能和内存效率之间折衷
  • 5.对象固定可以创建在托管和非托管代码之间传递的引用

1.小对象怎么处理的?

小型.NET对象被分配到小型对象堆(SOH)上。其中有3种:第0代,第1代和第2代。对象根据其寿命向上移动。

将新对象放在Gen 0上。当Gen 0充满时,.NET垃圾收集器(GC)运行,处理不再需要的对象,并将其他所有内容移至Gen1。如果Gen 1充满,则GC再次运行,也可以将Gen 1中的对象移动到Gen 2中。

Gen 2变满时,将发生GC完全运行。这将清除不需要的Gen 2对象,将Gen 1对象移至Gen 2,然后将Gen 0对象移至Gen 1,最后清除所有未引用的内容。每次运行GC之后,都会压缩受影响的堆,以将仍在使用的内存保持在一起。

这种代代相传的方法可确保事情高效运行-耗时的压缩过程仅在绝对必要时才会发生。

阅读全文