前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.Net虚拟机CLR核心的内存模型

.Net虚拟机CLR核心的内存模型

作者头像
江湖评谈
发布2023-08-31 21:18:38
1630
发布2023-08-31 21:18:38
举报
文章被收录于专栏:天下风云天下风云

前言

CLR里面内存模型众多,这里个人认为有个极其重要的内存模型组成的链式结构。本篇来看下。

概括

1.成员 这个内存模型的链式成员结构有如下: 一:MethodTable 二:EEClass 三:PreCode 四:MethodDescChunk 五:MethodDesc

2.内存模型示意图 以上五个结构,组成的内存模型示意图大致如下所示,它基本上包含了CLR里面用到的必须场景。当然,还有一些稀奇古怪的功能,这里并没有过多展示。

3.解释 一:MethodTable:对象的在CLR里面的实际类型表示,有的书上按照它的名字叫做方法表,但是实际上体现不出来它的功能。 二:EEClass:类型或者对象的私有数据 三:PreCode:前置码,一般的存放的是表示方法被编译之前的跳转或者需要经过的地址 四:MethodDescChunk:它存放在MethodDesc之前,表示它之后有几个MethodDesc。 五:MethodDesc:这个极其重要,表示的是函数方法的结构体。函数是否被编译,在内存里面的存放位置,以及函数对于GC的影响。JIT编译的时候需要编译的哪个函数,都是MethodDesc来做。

4:其它 除了以上之外,还有一些其它的内存表示。后面可能会赘述。

结尾

作者:江湖评谈

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-07-01,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 江湖评谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 概括
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com