[翻译] 编写高性能 .NET 代码--第二章 GC -- 将长生命周期对象和大对象池化
摘要:将长生命周期对象和大对象池化 请记住最开始说的原则:对象要么立即回收要么一直存在。它们要么在0代被回收,要么在2代里一直存在。有些对象本质是静态的,生命周期从它们被创建开始,到程序停止才会结束。其它对象显然不需要永远存在下去,但他们的生命周期会存在程序的某些上下文里。它们的存活时间会超过0代(1代)
阅读全文
posted @
2017-06-24 17:36
yahle
阅读(843)
推荐(0) 编辑
[翻译] 编写高性能 .NET 代码--第二章 GC -- 避免使用终结器,避免大对象,避免复制缓冲区
摘要:避免使用终结器 如果没有必要,是不需要实现一个终结器(Finalizer)。终结器的代码主要是让GC回收非托管资源用。它会在GC完成标记对象为可回收后,放入一个终结器队列里,在由另外一个线程执行队列里对象的终结器方法。这就意味着,如果你实现一个类的终结器,你必须保证在它在终结器执行后能被正常回收。这
阅读全文
posted @
2017-06-24 17:33
yahle
阅读(619)
推荐(0) 编辑
[翻译] 编写高性能 .NET 代码--第五章 通用编码与对象设计 -- 类 vs 结构体
摘要:本章介绍了本书其它部分未涉及到的一些编码和设计原则。包含了一些.NET的应用场景,有些不会造成太大危害,有些则会造成明显的问题。剩下的则根据你的使用方法会产生不同的效果。如果要对本章节出现的原则做一个总结,那就是:
**过度的优化会影响代码的抽象**
这意味着,当你希望更高的优化性能,你需要了解每个层次代码的实现细节。
阅读全文
posted @
2017-06-01 10:22
yahle
阅读(1709)
推荐(1) 编辑