问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

.NET对象占内存多少

发布网友 发布时间:2022-12-14 05:16

我来回答

1个回答

热心网友 时间:2024-11-17 22:40

有没有很快速的方法获取,而不是简单的估计分析对象大小?查了MSDN,和一些其他人的分析,得到解决是托管代码对象的大小无法真实的得到,因为存在托管对象转化成非托管的CLR优化。但我仍然不死心,非要弄个究竟!好吧,最终得到一些结果了。 sizeof关键字,用于获取值类型的大小,如int(占4个字节),char(2个字节);并且sizeof 运算符仅适用于值类型,而不适用于引用类型。所以针对对象改关键字无法使用。查阅msdn,发现对象Marshal.SizeOf 方法,解释为返回类的非托管大小;但是仍然不能使用,因为针对的是非托管代码,如果直接使用一个类的对象,会报一个错误:"不能作为非托管结构进行封送处理;无法计算有意义的大小或偏移量。";这是因为对象在内存中实际大小并不是固定的,可能这次运行一个值,下次就是另外一个值了,存在优化!所以为了固定一个对象的大小,必须告诉CLR不优化对象在内存中的大小。这就需要在声明类的时候加上[StructLayout(LayoutKind.Sequential)]这个特性;StructLayoutAttribute 类使用户可以控制类或结构的数据字段的物理布局。LayoutKind 枚举 控制当导出到非托管代码时对象的布局。成员名称说明Sequential对象的成员按照它们在被导出到非托管内存时出现的顺序依次布局。这些成员根据在 StructLayoutAttribute..::.Pack 中指定的封装进行布局,并且可以是不连续的。Explicit对象的各个成员在非托管内存中的精确位置被显式控制。每个成员必须使用 FieldOffsetAttribute 指示该字段在类型中的位置。Auto运行库自动为非托管内存中的对象的成员选择适当的布局。使用此枚举成员定义的对象不能在托管代码的外部公开。尝试这样做将引发异常。这就是控制对象转化为非托管代码时占用内存固定,这样我们就可以舒服的使用Marshal.SizeOf方法了。得到一个对象的大小。如果一个对象中还包含另外一个对象,那么另外一个对象可以使用这个[StructLayout(LayoutKind.Sequential)]也可以不使用,如果使用则是,该对象的大小加上这个对象的大小;如果不使用则是该对象的大小加上4个字节(就是这个对象引用大小)。当想获取一个集合的大小时候,我们不能在List上加这个属性,因为微软的dll中的类,那么我们怎么样才能获取对应的大小呢?其实还用一种简单的方式,就是将对象或者集合转化成内存流,再获取内存流的大小就ok了,虽然有一些其他影响大小,但基本上可以正确的粗略估计一个对象在内存的大小或者比较俩个对象、集合的大小的!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 无限月色让我们沉醉其中,乐而忘返的有什么诗句? 明月直入无心可猜是表白吗 独漉篇的作者简介 说出《田元杂兴》诗句,作者是谁,哪个朝代? 西昌那个大商场可以办信用卡 我要在西昌办一张信用卡 k12体系是什么 求ansys14.5视频教程,谢谢 手游金克丝皮肤会绝版嘛 转让无形资产的使用权,结转的成本应是( ) 转让无形资产所有权但不想结转成本,怎么做? 自行研发的无形资产,全部费用化了,以后有收入了,如何结转? 转让无形资产所有权时,应结转的转让成本是? 为什么无形资产的处置不确认收入结转成本 是不是只有以销售为目的的处置... 自己研发的无形资产出售,怎么结转成本? 无形资产月末需要结转吗 cf元帅到大元帅要多少经验 cf元帅到大元帅用多少经验 英语诗歌朗读《乡愁》 【播音与主持】:该用什么朗诵技巧诵读《乡愁》? 指南者防冻液10年24万公里怎么是红色的 什么榕婆什么的成语 seo中如何挖掘关键词。详细的方法。 uc浏览器高速下载收费吗 下载苹果6sPlus浏览器 白鹇怎么读 粳稻读音 k神是谁英雄联盟 用迅雷下载cubase5,到百分之99不继续了怎么办. 急求Cubase电脑音乐制作文件 CUBASE 4.0的下载地址 宝马6系GT自动挡落地价是多少钱? 轻粘土作品 翻译古诗:春雨语燕泼堤翻,晚笛归牛稳背眠 晚笛临风莫倚栏,安心饮酒不成欢。啥意思 晚笛临风莫倚栏,安心饮酒不成欢。下一句 晚笛声声岁已老,此生匆匆为何来 铁马秋风孤影瘦,银枪晚笛九云间。这一句对仗吗? 梨花树下彩蝶一对 小桥弯弯的流水 白衣如雪晚笛轻吹 离歌一曲何时归 为... 求类似于网游之公子连城的网游小说。 《网游之弑神天下》最新txt全集下载