如何获取一个对象所占用的内存空间 例如一个DataSet 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sizeof 只针对值类型...所以,基本上认为 C# 是不可能的。 在Java中有工具可以看到,在.net中不知道 ... ... 好像不能纯粹的找出某个DataSet所占用的内存空间吧?C#可以办到?等待强人出现 测试代码: 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 BinaryFormatter 之后看占用量是不对的。因为BinaryFormatter 之后的东东会比原来的大,因为里面包含了很多描述信息,比如该对象所处的名字空间等等,都会被BinaryFormatter 进去。所以用这个判断是不准确的。 这个枚举改如何使用呢,怎样赋值 关于string转enum的问题 .net用测试DbTransaction实现跨数据库事务 时间减法 API函数问题 0001+1怎么才能等于0002啊? 求正则表达式式子 自动更新程序问题 新建一个windows应用程序时,会有多个文件,都是干什么用的? c# 货币类型格式处理问题? 如果执行了if,不执行下面语句,应该如何编写 迭代问题....菜鸟提问
sizeof 只针对值类型...所以,基本上认为 C# 是不可能的。
好像不能纯粹的找出某个DataSet所占用的内存空间吧?
C#可以办到?
等待强人出现
{
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