本篇是 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訪問
- 集中和抽象性能敏感和困難的代碼
- 隔離非託管或不安全代碼
- 保持代碼的清晰,知道有證實說有性能問題
- 構建一個具有性能意識的團隊
- 瞭解性能相關的領域
- 有效測試
- 性能基礎設施和自動化
- 只相信數字
- 有效的代碼回顧
- 教育