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