您的位置:首页 > 编程语言 > C#

关于C#对象内存占用的试验

2008-06-24 10:50 405 查看
在对象中通常我们有时会用静态成员,或静态方法,有人说静态方法在应用程序一启动后就会加载到内存中去,这样会加快程序的运行,到底它占不占用对象的内存呢,来分析下

对象

[Serializable]

public class UserInfo

{

}

测试方法

UserInfo user = new UserInfo();

MemoryStream ms = new MemoryStream();

BinaryFormatter formatter = new BinaryFormatter();

formatter.Serialize(ms,user);

ms.Position = 0;

Console.Write(ms.Length);

一个没有内容的对象,它占用内存的大小为118个字节

在对象类中加入两个静态成员

static int a = 0;

static int b=1;

执行测试后发现还是占用118个字节,说明静态成员不占用对象的内存空间

在对象类中加入二个静态方法

public static void Get()

{

}

public static string getStr()

{

return "";

}

运行测试程序发现还是占用118个字节,说明静态方法也不占用对象的内存

如果把static的方法改成非静态的方法,运行测试程序后发现还是占用118个字节,说明非静态方法类也不占用对象的内存空间.

但是当我在对象类中定义二个非静态成员

int aa =0;

string str = "ddd";

运行测试后,发现占用了141个内存字节,也就是非静态的变量会占用对象的内存空间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: