c# object 占用内存大小
作者:admin 发布于:2014-3-6 23:40 Thursday 分类:.NET
测试代码:
private void button2_Click(object sender, EventArgs e)
{
int num = 1;
MessageBox.Show(GetObjectSize(num).ToString());
DataSet ds = new DataSet();
MessageBox.Show(GetObjectSize(ds).ToString());
DataTable dt = new DataTable();
dt.Columns.Add("name", typeof(string));
DataRow dr = dt.NewRow();
dr["name"] = "abc";
dt.Rows.Add(dr);
ds.Tables.Add(dt);
MessageBox.Show(GetObjectSize(ds).ToString());
}
public long GetObjectSize(object obj)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter formater = new BinaryFormatter();
formater.Serialize(ms, obj);
ms.Position = 0;
return ms.Length;
}
"在C#里,是不能直接获取object占用内存大小的,因为它根本不是一个标准的布局。"
".net的对象占用的空间,跟其它非托管程序是一样的,只是大部分的对象,由于是托管的,而且没有规定内存布局,所以我们无法获得其真正占用内存的大小."参考:http://zhidao.baidu.com/question/73668016.html
标签: object