中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
編寫高性能的.NET代碼

包郵 編寫高性能的.NET代碼

出版社:人民郵電出版社出版時間:2017-08-01
開本: 32開 頁數: 212
中 圖 價:¥47.0(8.0折) 定價  ¥59.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

編寫高性能的.NET代碼 版權信息

編寫高性能的.NET代碼 本書特色

本書詳細介紹了如何編寫高性能的.NET程序,在zui大化托管代碼性能的同時,還能保證.NET的特性優勢。 本書循序漸進地深入.NET的各個部分,特別是底層的公共語言運行時(Common Language Runtime,CLR),了解CLR是如何完成內存管理、代碼編譯、并發處理等工作的。本書還詳細介紹了.NET的架構,探討了編程方式如何影響程序的整體性能,在全書中,還分享了發生在微軟的一些趣聞軼事。本書的內容偏重于服務器程序,但幾乎所有內容也同樣適用于桌面端和移動端應用程序。 本書條理清楚,言簡意賅,適合有一定.NET基礎的讀者和想要提高代碼性能的C#程序員學習參考。

編寫高性能的.NET代碼 內容簡介

想讓自己的.NET代碼獲得zui佳的性能嗎?本書將揭開CLR的神秘面紗,不僅教你如何編寫性能優異的代碼,還能讓你“知其所以然”。作者參與設計并搭建的系統是世界上zui大型的高性能.NET系統之一,他在本書中融入了很多的經驗教訓。 本書不僅講解了CLR的工作機制,還詳細介紹了當前獲得zui佳性能的新方法,涉及.NET環境下的極致優化、對CLR功能的深入剖析、免費的工具和教程推薦、頗有價值的案例軼事、評測并提升性能的具體步驟。 通過閱讀本書,你將能夠 ● 選擇性能評測指標并知道理由。 ● 使用眾多免費的好工具來快速解決問題。 ● 理解.NET垃圾回收機制及其對應用程序的影響。 ● 采用高效的編碼模式,以便優化垃圾回收的性能。 ● 對常見的垃圾回收性能問題做出診斷。 ● 降低JIT編譯的開銷。 ● 讓多線程技術得以穩定高效地使用,避免發生同 步問題。 ● 選用.NET特性和API時,能夠揚長避短。 ● 利用代碼生成(Code Generation)技術來避 免性能問題。 ● 對性能進行全面測評,發現隱藏較深的性能問題。 ● 利用性能計數器和ETW事件對程序進行量化分析。 ● 使用zui新、zui強大的.NET特性。 ● 確保代碼能在移動設備上正確運行。 ● 建立性能至上的開發團隊。

編寫高性能的.NET代碼 目錄

目錄



第1章 性能評估及工具 1

1.1 選擇評估內容 1

1.2 平均值還是百分位值 3

1.3 評估工具 4

1.3.1 Visual Studio 5

1.3.2 性能計數器 7

1.3.3 ETW事件 13

1.3.4 PerfView 15

1.3.5 CLR Profiler 18

1.3.6 Windbg 20

1.3.7 .NET IL分析器 24

1.3.8 MeasureIt 25

1.3.9 代碼中的工具 25

1.3.10 SysInternals工具 26

1.3.11 數據庫 26

1.3.12 其他工具 27

1.3.13 評估本身的開銷 27

1.4 小結 27



第2章 垃圾回收 28

2.1 基本運作方式 30

2.2 配置參數 33

2.2.1 工作站模式還是服務器模式 33

2.2.2 后臺垃圾回收 34

2.2.3 低延遲模式

(Low Latency Mode) 35

2.3 減少內存分配量 36

2.4 首要規則 37

2.5 縮短對象的生存期 37

2.6 減少對象樹的深度 38

2.7 減少對象間的引用 38

2.8 避免對象固定 38

2.9 避免使用終結方法 39

2.10 避免分配大對象 40

2.11 避免緩沖區復制 41

2.12 對長期存活對象和大型對象進行

池化 41

2.13 減少LOH的碎片整理 45

2.14 某些場合可以強制執行完全

回收 46

2.15 必要時對LOH進行碎片

整理 47

2.16 在垃圾回收之前獲得通知 47

2.17 用弱引用作為緩存 50

2.18 評估和研究垃圾回收性能 51

2.18.1 性能計數器 51

2.18.2 ETW事件 52

2.18.3 垃圾回收的耗時 53

2.18.4 內存分配的發生時機 54

2.18.5 查看已在LOH中分配內存的

對象 55

2.18.6 查看內存堆中的全部對象 57

2.18.7 為什么對象沒有被回收 60

2.18.8 哪些對象被固定著 61

2.18.9 內存碎片的產生時機 63

2.18.10 對象位于第幾代內存堆中 67

2.18.11 第0代內存堆中存活著哪些

對象 68

2.18.12 誰在顯式調用GC.Collect

方法 70

2.18.13 進程中存在哪些弱引用 70

2.19 小結 71



第3章 JIT編譯 72

3.1 JIT編譯的好處 73

3.2 JIT編譯的開銷 73

3.3 JIT編譯器優化 75

3.4 減少JIT編譯時間和程序啟動

時間 76

3.5 利用Profile優化JIT編譯 78

3.6 使用NGEN的時機 78

3.6.1 NGEN本機映像的優化 79

3.6.2 本機代碼生成 80

3.7 JIT無法勝任的場合 80

3.8 評估 81

3.8.1 性能計數器 81

3.8.2 ETW事件 82

3.8.3 找出JIT耗時*長的方法和

模塊 82

3.9 小結 83



第4章 異步編程 84

4.1 使用Task 86

4.2 并行循環 89

4.3 避免阻塞 92

4.4 在非阻塞式I/O中使用Task 92

4.4.1 適應Task的異步編程模式 94

4.4.2 使用高效I/O 96

4.5 async和await 97

4.6 編程結構上的注意事項 99

4.7 正確使用Timer對象 100

4.8 合理設置線程池的初始大小 101

4.9 不要中止線程 102

4.10 不要改變線程的優先級 102

4.11 線程同步和鎖 103

4.11.1 真的需要操心性能嗎 103

4.11.2 我真的需要用到同步鎖嗎 104

4.11.3 多種同步機制的選擇 105

4.11.4 內存模型 106

4.11.5 必要時使用volatile 106

4.11.6 使用Interlocked方法 108

4.11.7 使用Monitor(鎖) 110

4.11.8 該在什么對象上加鎖 112

4.11.9 異步鎖 112

4.11.10 其他加鎖機制 115

4.11.11 可并發訪問的集合類 116

4.11.12 使用更大范圍的鎖 116

4.11.13 替換整個集合 117

4.11.14 將資源復制給每個線程 118

4.12 評估 118

4.12.1 性能計數器 118

4.12.2 ETW事件 119

4.12.3 查找爭用情況*嚴重的鎖 120

4.12.4 查找線程在I/O的阻塞位置 120

4.12.5 利用Visual Studio可視化展示

Task和線程 121

4.13 小結 122



第5章 編碼和類設計的一般規則 123

5.1 類和“結構”的對比 123

5.2 重寫“結構”的Equals和

GetHashCode方法 126

5.3 虛方法和密封類 128

5.4 接口的分發(Dispatch) 128

5.5 避免裝箱 129

5.6 for和foreach的對比 131

5.7 強制類型轉換 133

5.8 P/Invoke 134

5.9 委托 136

5.10 異常 137

5.11 dynamic 138

5.12 自行生成代碼 141

5.13 預處理 146

5.14 評估 146

5.14.1 ETW事件 146

5.14.2 查找裝箱指令 147

5.14.3 **時間發現“異常” 149

5.15 小結 150



第6章 使用.NET Framework 151

6.1 全面了解所用API 151

6.2 多個API殊途同歸 152

6.3 集合類 152

6.3.1 泛型集合類 153

6.3.2 可并發訪問的集合類 154

6.3.3 其他集合類 156

6.3.4 創建自定義集合類型 156

6.4 字符串 157

6.4.1 字符串比較 157

6.4.2 ToLower和ToUpper 158

6.4.3 字符串拼接 158

6.4.4 字符串格式化 158

6.4.5 ToString 159

6.4.6 避免字符串解析 159

6.5 應避免使用正常情況下也會拋出

“異常”的API 159

6.6 避免使用會在LOH分配內存的

API 159

6.7 使用延遲初始化 160

6.8 枚舉的驚人開銷 161

6.9 對時間的跟蹤記錄 162

6.10 正則表達式 164

6.11 LINQ 164

6.12 讀取文件 165

6.13 優化HTTP參數及網絡

通訊 166

6.14 反射 167

6.15 評估 168

6.16 性能計數器 168

6.17 小結 169



第7章 性能計數器 170

7.1 使用已有的計數器 170

7.2 創建自定義計數器 171

7.2.1 Averages 172

7.2.2 Instantaneous 173

7.2.3 Deltas 173

7.2.4 Percentages 173

7.3 小結 174



第8章 ETW事件 175

8.1 定義事件 175

8.2 在PerfView中使用自定義

事件 178

8.3 創建自定義ETW事件

Listener 179

8.4 獲取EventSource的詳細

信息 184

8.5 自定義PerfView分析插件 186

8.6 小結 189



第9章 Windows Phone 190

9.1 評估工具 190

9.2 垃圾回收和內存 191

9.3 JIT 191

9.4 異步編程和內存模式 192

9.5 其他問題 193

9.6 小結 193



第10章 代碼安全性 194

10.1 充分理解底層的操作系統、API

和硬件 194

10.2 把API調用限制在一定范圍的

代碼內 194

10.3 把性能要求很高、難度很大的

代碼集中起來并加以抽象 199

10.4 把非托管代碼和不安全代碼

隔離出來 200

10.5 除非有證據證明,不然代碼清晰

度比性能更重要 200

10.6 小結 200



第11章 建立追求性能的開發團隊 201

11.1 了解*影響性能的關鍵

區域 201

11.2 有效的測試 201

11.3 性能測試平臺和自動化 202

11.4 只認數據 203

11.5 有效的代碼復查 203

11.6 訓練 204

11.7 小結 205

附錄A 盡快啟動對應用程序的性能

討論 206

定義指標 206

分析CPU占用情況 206

分析內存占用情況 206

分析JIT 207



分析異步執行性能 207

附錄B 大O表示法 209

常見算法及其復雜度 211

排序算法 211

圖論算法 211

查找算法 212

特殊案例 212



附錄C 參考文獻 213

參考書籍 213

相關人士及博客 213

展開全部

編寫高性能的.NET代碼 作者簡介

作者簡介 Ben Watson從2008年開始就已經是微軟的軟件工程師了。他在必應(Bing)平臺的研發團隊工作時,建立了一套世界一流、基于.NET的高性能服務應用,足以應付幾千臺電腦發起的大容量、低延遲請求,用戶數量高達幾百萬。他在業余時間喜歡參加地理尋寶游戲、閱讀各種書籍、欣賞古典音樂,享受與妻子Leticia、女兒Emma的歡聚時刻。他還是《C# 4.0 How-To》一書的作者,該書已由Sams出版。 譯者簡介 戴旭,1973年生,浙江蕭山人,西安建筑科技大學計算機應用學士,杭州電子科技大學軟件工程碩士,高級項目管理師。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 恒温水槽与水浴锅-上海熙浩实业有限公司 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | ptc_浴霸_大巴_干衣机_呼吸机_毛巾架_电动车加热器-上海帕克 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 壹车网 | 第一时间提供新车_资讯_报价_图片_排行! | 慈溪麦田广告公司,提供慈溪广告设计。| 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 储气罐,真空罐,缓冲罐,隔膜气压罐厂家批发价格,空压机储气罐规格型号-上海申容压力容器集团有限公司 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 查分易-成绩发送平台官网 | 烽火安全网_加密软件、神盾软件官网| 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 氢氧化钙设备, 氢氧化钙生产线-淄博惠琛工贸有限公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 |