相关疑难解决方法(0)

如何在内存中获取对象大小?

我需要知道我的对象在内存中消耗了多少字节(在C#中).例如,我Hashtable,或SortedList,或多少List<String>.

.net c# memory performance profiling

195
推荐指数
5
解决办法
26万
查看次数

在c#中以字节为单位查找对象实例的大小

对于任何任意实例(不同对象,组合,单个对象等的集合)

如何确定其大小(以字节为单位)?

(我现在有各种对象的集合,我正在尝试确定它的聚合大小)

编辑:有人写了一个可以做到这一点的对象的扩展方法吗?那个非常整洁的imo.

c#

101
推荐指数
7
解决办法
9万
查看次数

ASP.net HttpRuntime.Cache使用的默认序列化是什么

只是想知道是否有人明确知道ASP.net HttpRuntime.Cache使用的默认序列化是什么?是二进制,XML,还有别的什么?

我问,因为我的情况是我使用相同自定义类型的多个对象填充通用List.自定义类型是POCO,没有什么特别之处.它的所有属性都是公开的{get; 组; 它是公共的,它没有继承,它没有接口.事实上,它比我们正在缓存的许多其他对象复杂得多,没有问题.我已经尝试将[Serializable]属性添加到自定义类,它没有任何效果.

我使用唯一键将列表添加到缓存中.在将列表插入缓存之前,已对列表进行了验证,列表中的对象也已经过验证.但是当列表从缓存中拉回时它是一个空列表(NOT NULL),它根本没有任何项目.这意味着列表正被添加到缓存中并且是可检索的,但由于某种原因,缓存在序列化列表中的对象时出现问题.

我发现这怪异怪异,因为我有另一个自定义对象列表,它们更加复杂(包括继承,接口,还包含属性,这些属性是其他复杂对象的通用列表),并且这些列表的缓存可以正常工作.

工作和非工作列表都在使用缓存数据的ASP.net用户控件之外的C#类中进行管理.这两个缓存处理类都调用完全相同的缓存管理器类单例实例,该实例包装HttpRuntime.Cache以提供用于拉动和将对象推入缓存的类型化方法.

任何人都有任何想法会导致这种情况发生.我唯一可以解决的是Document对象的'Blurb'属性可能包含HTML,但如果ASP.net使用二进制序列化缓存,我看不出它会如何做.

这是班级

public class Document
{
    public string ContentTypeId { get; set; }
    public string ContentId { get; set; }
    public bool IsCustom { get; set; }
    public Language DocLanguage { get; set; }
    public string RegularTitle { get; set; }
    public string InvertedTitle { get; set; }
    public string Blurb { get; set; }
}  
Run Code Online (Sandbox Code Playgroud)

这是语言属性中使用的子类

public class Language
{
    public string Name { get; set; }
    public string Code …
Run Code Online (Sandbox Code Playgroud)

asp.net caching

6
推荐指数
2
解决办法
3672
查看次数

标签 统计

c# ×2

.net ×1

asp.net ×1

caching ×1

memory ×1

performance ×1

profiling ×1