本篇是 Writing High-Performance .NET Code 的目录索引,翻译内容不定时更新,目录也会同步修改。html
- 性能测量及工具
- 垃圾回收
- JIT编译
- JIT编译的好处
- JIT编译的花费
- JIT编译的优化
- 减小JIT和启动的时间
- 分析并优化JIT过程
- 何时使用NGEN
- 优化NGEN映像文件
- 新特性:本地化代码生成
- 何时不能编译JIT
- 测量
- 异步编程
- 使用Tasks
- Parallel Loops
- 避免阻塞
- Async and Await
- 关于一个程序结构的说明
- 正确使用计时器
- 确保配置了正确的线程池大小
- 不要终止线程
- 不要修改线程优先级
- 测量
- 通用编码与类设计
- 类VS结构体
- 覆盖结构体的Equals和GetHashCode方法
- 虚函数和终结类
- 接口调度
- 避免装箱
- for vs. foreach
- 类型转换
- P/Invoke
- 委托
- 异常
- 动态对象
- 代码生成
- 预处理
- 测量
- 使用.NET框架
- 了解全部你所调用的API
- 一些API的思考
- 集合
- 字符串
- 避免API在正常状况下抛出异常
- 避免API在大对象堆里分配
- 使用延迟初始化
- 使人惊讶的Enum消耗
- 追踪时间
- 正则表达式
- LINQ
- 读取文件
- 优化HTTP设置于网络通信
- 反射
- 测量
- 性能计数器
- ETW 事件
- 定义一个事件
- 自定义事件在PerfView里的开销
- 建立一个自定义ETW事件监听器
- 得到事件源的详细信息
- 自定义PerfView分析扩展
- Windows Phone
- 工具
- 垃圾回收与内存
- JIT
- 异步编程与内存模型
- 其它的思考
- 代码安全
- 了解底层操做系统,api和硬件
- 在某些区域里限制你的api访问
- 集中和抽象性能敏感和困难的代码
- 隔离非托管或不安全代码
- 保持代码的清晰,知道有证实说有性能问题
- 构建一个具有性能意识的团队
- 了解性能相关的领域
- 有效测试
- 性能基础设施和自动化
- 只相信数字
- 有效的代码回顾
- 教育