托管堆的内存分配
来源:互联网 发布:js中字符串转换成数组 编辑:程序博客网 时间:2024/05/17 06:08
1:托管堆
定义:应用程序在进程初始化之后,CLR在进程的可用地址空间里分配一段保留的地址空间;它是进程的可用地址空间中的一块内存区域,但并不对应任何物理内存,这块地址空间就是托管堆。
分类:根据存储信息不同划分,最重要的是:垃圾回收堆(GC heap)和加载堆(Loader Heap)
GC heap:存储的是对象实例,受GC管理。
Loader Heap:存储最重要的信息是元数据相关的信息,即type对象。不受GC管理,生命周期从创建到AppDomain卸载。其中每个type对象在Loader heap中表现为一个method table(方法表:记录存储的元数据信息)
2:TypeHandle:类型句柄,指向对象实例的方法表。每个对象在创建的时候都包含了该附加成员,它占内存的4个字节。
3:SyncBlockIndex:用于线程同步,它的值指示线程的同步状态。每个对象在创建的时候都包含了该附加成员,指向一块被称为 Synchronization Block的内存块,占4个字节的内存空间。
4:NextObjPtr:是托管堆维护的一个指针,用于指向下一个新建对象分配时在托管堆中的位置。
5:testobj test = new testobj(); // 反汇编后,new操作被编译为 newobj指令。
6:堆的分配是向高地址扩展:低地址到高地址(和栈的分配相反)
- 托管堆的内存分配
- 托管堆内存分配优化
- CLR via C# 读书笔记(四).net平台对象在托管堆上的内存分配
- 内存的堆分配和栈分配
- 内存的堆分配和栈分配
- 内存的堆分配和栈分配
- 内存的堆分配和栈分配
- 内存的堆分配和栈分配
- 堆内存和栈内存的分配
- C#的内存管理:堆、栈、托管堆与指针
- .net内存释放(托管堆与非托管堆的释放)
- 堆中分配的内存的方向
- 程序的内存分配 栈和堆
- 程序的内存分配 堆和栈
- 优化Dalvik虚拟机的堆内存分配
- 优化Dalvik虚拟机的堆内存分配
- 内存中堆和栈的分配
- 优化Dalvik虚拟机的堆内存分配
- JSON的理解
- Linux Socket编程 续
- Linux Socket编程 线程
- WP7-Helloworld!
- 进程通信方式介绍
- 托管堆的内存分配
- 刚看到小F关于SQL执行顺序的帖子,拿过来备个用
- 进程的用户栈和内核栈
- WP7-开发环境搭建及代码结构概述
- 比尔及梅琳达·盖茨基金会联席主席比尔·盖茨近日面向全球发布了一年一度的公开信。在信中,盖茨回顾了过去一年盖茨基金会在全球慈善领域的工作,分享了他的忧虑与希望,呼吁各国更多关注全球十亿贫困人口,增加资源
- C中的函数指针使用
- 一个春运新应用的构想
- Linux驱动程序框架介绍
- web Server服务