2017年6月24日
摘要: 避免使用终结器 如果没有必要,是不需要实现一个终结器(Finalizer)。终结器的代码主要是让GC回收非托管资源用。它会在GC完成标记对象为可回收后,放入一个终结器队列里,在由另外一个线程执行队列里对象的终结器方法。这就意味着,如果你实现一个类的终结器,你必须保证在它在终结器执行后能被正常回收。这 阅读全文
posted @ 2017-06-24 17:33 yahle 阅读(615) 评论(0) 推荐(0) 编辑
  2017年6月7日
摘要: 减少分配率 最重要的规则 缩短对象的生命周期 减少对象层次的深度 减少对象之间的引用 避免钉住对象(Pinning) 等一些在GC上的使用原则 阅读全文
posted @ 2017-06-07 09:40 yahle 阅读(871) 评论(0) 推荐(0) 编辑
  2017年6月1日
摘要: 本章介绍了本书其它部分未涉及到的一些编码和设计原则。包含了一些.NET的应用场景,有些不会造成太大危害,有些则会造成明显的问题。剩下的则根据你的使用方法会产生不同的效果。如果要对本章节出现的原则做一个总结,那就是: **过度的优化会影响代码的抽象** 这意味着,当你希望更高的优化性能,你需要了解每个层次代码的实现细节。 阅读全文
posted @ 2017-06-01 10:22 yahle 阅读(1702) 评论(1) 推荐(1) 编辑
  2017年5月28日
摘要: 在基于“less rope to hang yourself with”思想下,.NET 框架没有给开发提供很多太多的配置选项。但在大多数情况下,GC会跟你的硬件配置,及可用资源以及程序自己的行为做调整。当然也提供一些高级的配置使用,但这取决于你程序的类型。 阅读全文
posted @ 2017-05-28 15:25 yahle 阅读(1584) 评论(0) 推荐(1) 编辑
  2017年3月15日
摘要: "返回目录" 基本操作 垃圾回收的算法细节还在不断完善中,性能还会有进一步的提升。下文介绍的内容在不同的.NET版本里会略有不同,但大方向是不会有变动的。 在.net进程里会管理2个类型的内存堆:托管和非托管。本地代码申请的,以及由CLR申请的都是非托管内存,使用Windows API 的 Virt 阅读全文
posted @ 2017-03-15 09:23 yahle 阅读(700) 评论(0) 推荐(0) 编辑
  2017年3月14日
摘要: 垃圾回收是你开发工作中要了解的最重要的事情。它是造成性能问题里最显著的原因,但只要你保持持续的关注(代码审查,监控数据)就可以很快修复这些问题。 阅读全文
posted @ 2017-03-14 18:47 yahle 阅读(761) 评论(0) 推荐(0) 编辑
  2017年3月10日
摘要: Writing High-Performance .NET Code 的目录,翻译内容不定时更新,索引目录也会同步修改。 阅读全文
posted @ 2017-03-10 16:28 yahle 阅读(2368) 评论(3) 推荐(1) 编辑
摘要: vs虽然不是全宇宙唯一的IDE,但它是.net开发人员最常用的开发工具。它自带一个性能分析工具,你可以使用它来做开发,不同的vs版本在工具上会略有差别。 阅读全文
posted @ 2017-03-10 16:27 yahle 阅读(550) 评论(0) 推荐(0) 编辑
摘要: [,它实际上是所有实例上的汇总值。 后面的很多章节将详细介绍相关主题对应的计数器。几乎每个Windows子系统都有对应的性能计数器,这些计数器通常适用于每个程序。 但是,在继续之前,您应该熟悉一些基本的操作系统相关的计数器: • Physical Memory—The actual physical 阅读全文
posted @ 2017-03-10 16:27 yahle 阅读(1189) 评论(0) 推荐(0) 编辑
摘要: 在考虑要性能测试的目标值时,我们需要考虑用什么统计口径。大多数人都会首选平均值,但在大多数情况下,这个正确的,但你也应该适当的考虑百分数。但你有可用性的要求,作为性能测试的目标里肯定会有用百分比作的要求。举个栗子:“数据库请求的平均延迟必须小于10ms,95%是请求必须小于100ms” 阅读全文
posted @ 2017-03-10 16:26 yahle 阅读(547) 评论(0) 推荐(0) 编辑