当前位置: 首页 > 编程语言 > C#

我的类使用多少内存实例-务实答案分享

时间:2023-04-10 10:43:50 C#

我的类使用多少内存实例-务实回答调用构造函数后跟随的类的实例有多大?我想这通常可以写成size=nx+c其中x=4inx=4和x=8inx64。n=?c=?.NET中有什么方法可以返回这个数字吗?节点类{byte[][]a;诠释[]b;列表c;publicNode(){a=newbyte[3][];b=新整数[3];c=新列表(0);首先,它取决于程序编译和运行的环境,但如果你修复了一些变量,你可以得到一个很好的猜测。2)的答案是否定的,没有函数可以为您作为参数提供的任何对象提供所请求的答案。在解决1)你有两种方法:测试方法首先看这些:你需要的方法是:constintSize=100000;privatestaticvoidInstanceOverheadTest(){object[]array=newobject[Size];longinitialMemory=GC.GetTotalMemory(true);for(inti=0;i在我的Windows7机器上,VS2012,.NET4.5,x86(32位),结果是96.000。当更改为x64时,结果是176.000。做数学方法数学方法可以写成作为一个函数,它会给你结果,但特定于你的Node类,它只会在对对象执行其他操作之前起作用。还要注意这是在32位程序中,还要注意这个数字可能因框架实现和版本。这只是一个例子,如果对象足够简单,你可以在某个时候很好地猜测对象的大小。从.NET数组开销中获取的数组和列表开销常量?和C#列表大小与double[]大小publicconstintPointerSize32=4;publicconstintValueArrayOverhead32=12;publicconstintRefArrayOverhead32=16;publicconstintListOverhead32=32;3*指针大小32;intsb=ValueArrayOverhead32+3*sizeof(int);intsc=ListOverhead32;返回3*PointerSize32+sa+sb+sc;}这也将返回96,所以我认为该方法是正确的。以上就是C#学习教程:我的类实例使用了多少内存-实用解答分享的全部内容,如果对大家有用还需要详细了解C#学习教程,希望大家多多关注---本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: