如何在HttpRuntime.Cache中获取对象的大小?

时间:2008-11-28 20:30:24

标签: c# asp.net caching httpruntime.cache

我目前在ASP.NET HttpRuntime.Cache中存储了许多不同类型的对象,我想知道是否有办法弄清楚每个对象有多大?

2 个答案:

答案 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也可能有所帮助