摘要: .NET的垃圾回收器是用一种叫代的原理,假设以下三种情况成立,则提出了代的概念。越是新的对象,他的生存周期就越短越是老得对象,它的生存周期就越长回收一部分堆对象比回收全部堆对象性能高第一步:当声明A-E 五个对象,它们在堆栈的分配情况(垃圾回收机制没有扫描之前),稍后,C和E对象变的不可达第二步:当CLR初始化时,它为第零代分配了256K的空间(可能不同),代越高分配的内存越多。假设A-E分配了占用完了256k的内存,当F对象又被声明时,回收器就会进行第零代回收,C和E被回收,A,B,D被提升到一代。第三步:F-K对象被分配到第零代,稍后,B,H和J变的不可达。如图,第四步:但是垃圾回收器会检 阅读全文
posted @ 2011-12-20 17:10 kntao 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 一、弱引用: 我们设计全局缓存时,使用静态或全局字段来引用某个对象,做到一次创建多次使用。比如: class Program { private static DataCache _cache; public static DataCache Cache { get { if(_cache == null) _cache = new DataCache(); return _cac... 阅读全文
posted @ 2011-12-20 15:46 kntao 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 1. 解决线上.NET应用程序的如下问题:崩溃CPU高程序异常程序Hang死2. 安装WinDbg:http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx3. 配置WinDbg:运行WinDbg->菜单->File->Symbol File Path->按照下面的方法设置_NT_SYMBOL_PATH变量:在弹出的框中输入“C:\MyCodesSymbols; SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols”(按照这样设 阅读全文
posted @ 2011-12-20 11:55 kntao 阅读(521) 评论(0) 推荐(0) 编辑