翻译

.NET

总结一些编码和设计原则实例

91 0

本章介绍了本书其它部分未涉及到的一些编码和设计原则。包含了一些.NET的应用场景,有些不会造成太大危害,有些则会造成明显的问题。剩下的则根据你的使用方法会产生不同的效果。如果要对本章节出现的原则做一个总结,那就是:过度的优化会影响代码的抽象这意味着,当你希望更高的优化性能,你需要了解每个层次代码的实现细节。本章会有很多相关介绍。类 vs 结构体类的实例都是在堆上分配的,通过指针的引用进行访问。传递这些对象代价很低,因为它只是一个指针(4或者8直接)的拷贝。然而,对象也有一些固定开销:8或16字节(32或6

.NET

编写高性能 .NET的实例教程

47 0

减少分配率这个几乎不用解释,减少了内存的使用量,自然就减少GC回收时的压力,同时降低了内存碎片与CPU的使用量。你可以用一些方法来达到这一目的,但它可能会与其它设计相冲突。你需要在设计对象时仔细检查每个它并问自己:我真的需要这个对象吗?这个字段是我需要的吗?我能减少数组的尺寸吗?我能缩小primitives的尺寸吗(用Int32替换Int64,其它)?这些对象,是否只有在极少数情况下,或者只有初始化的时候才用到?是否能将一些类转为结构体使他们在栈上分配或者成为某个对象的一部分?我是否分配了大量内存,但实际