我目前在ASP.NET HttpRuntime.Cache中存储了许多不同类型的对象,我想知道是否有办法弄清楚每个对象有多大?
答案 0 :(得分:5)
看看这些问题:
Getting the size of a field in bytes with C#
Find out the size of a .net object
特别是,在这些问题中寻找Jon Skeet的答案。他们会告诉你为什么数字不准确。
至于估计,除非您的对象符合某些标准,否则无法做到这一点。
例如,如果缓存中有许多对象,共享对某些常见对象实例的引用,则序列化缓存中的其中一个对象也会序列化这些常见对象的副本,从而使结果膨胀。
答案 1 :(得分:1)
您可以做的一件事是将对象序列化为磁盘上的文件。这应该会给你一个想法。
来自ASP联盟的cache manager也可能有所帮助