搜索 Google 和 StackOverFlow 会找到很多关于这个问题的参考资料。包括例如:
因此,让我在开始时说,我理解通常不可能获得准确的测量结果。但是我并不担心——我正在寻找能给我相对价值而不是绝对价值的东西。因此,如果他们以一种或另一种方式偏离了一点,那也没关系。
我有一个复杂的对象图。它由一个单亲 (T) 和可能有孩子的孩子组成,依此类推。图中的所有对象都来自同一个基类。childrean 是 List T 的形式。
我已经尝试过序列化方法和不安全方法来计算大小。他们给出了不同的答案,但在这两种情况下,“相对”问题是相同的。
我假设父对象的大小将大于子对象大小的总和。事实证明这不是真的。我计算了父母的大小。然后总结了孩子们的大小。在某些情况下,这似乎是有道理的,但在其他情况下,孩子的总和远远超过为父母确定的大小。
所以我的问题是:为什么我的简单假设是序列化对象会导致大小小于子对象的总和。我想出的唯一答案是每个序列化对象都有一个固定的开销(我想这是不言而喻的),并且这些总和可以超过父对象的“自身大小”。如果是这样,有什么方法可以确定该开销可能是多少,以便我可以考虑到它?
非常感谢您的任何建议。
编辑 对不起我忘了说所有对象都标记为可序列化序列化方法是:
var bf = new BinaryFormatter();
var ms = new MemoryStream();
bf.Serialize(ms, testObject);
byte[] array = ms.ToArray();
return array.Length;