第1章 性能指标
1.1 性能目标
1.2 性能指标
第2章 性能度量
2.1 性能度量方式
白盒测试-小程序
黑盒测试-大型程序
2.2 Windows内置工具
2.2.1 性能计数器
2.2.2 Windows事件追踪
2.3 时间分析器
2.4 内存分配分析器
2.5 内存分析器
2.6 其他分析器
2.7 微基准测试
第3章 类型揭秘
3.1 示例
3.2 引用类型和值类型在语义上的区别
3.3 存储,分配和销毁
3.4 引用类型揭秘
3.5 值类型揭秘
3.6 值类型的虚方法
3.7 装箱
3.8 使用值类型的最佳实践
public struct Point2D : IEquatable<Point2D> { public int X; public int Y; public override bool Equals(object obj) { if(!(obj is Point2D)) return false; Point2D other = (Point2D)obj; return x == other.X && Y == other.Y; } public bool Equals(Point2D other) { return x == other.X && Y == other.Y; } public static bool operator==(Point2D a,Point2D b) { return a.Equals(b); } public static bool operator!=(Point2D a,Point2D b) { return !(a==b); } }
第4章 垃圾回收
4.1 为什么需要垃圾回收
消除内存管理的缺陷和陷阱
内存管理性能
4.1.1 空闲列表管理
4.1.2 引用计数垃圾回收
4.2 追踪垃圾回收
4.2.1 标记阶段
4.2.2 清理与压缩阶段
4.2.3 固定
4.3 垃圾回收器的特征
4.4 代
4.5 垃圾回收段和虚拟内存
4.6 终结化
4.7 弱引用
4.8 使用垃圾回收器
4.9 垃圾回收性能最佳实践
第5章 集合和泛型
泛型解决的问题:类型安全,避免装箱
第6章 并发和并行
第7章 网络,I/O和序列化
第8章 不安全的代码以及互操作
第9章 算法优化
第10章 性能模式
第11章 Web应用性能