| | | 編寫高性能的.NET代碼(異步圖書出品) | 該商品所屬分類:圖書 -> 人民郵電出版社 | 【市場價】 | 563-816元 | 【優惠價】 | 352-510元 | 【作者】 | BenWatson沃森戴旭 | 【出版社】 | 人民郵電出版社 | 【ISBN】 | 9787115461919 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
出版社:人民郵電出版社 ISBN:9787115461919 版次:01 商品編碼:12153905 品牌:異步圖書 包裝:平裝 開本:16開 出版時間:2017-08-01 頁數:212 正文語種:中文 作者:Ben,Watson,沃森,戴旭
" 編輯推薦 想讓自己的.NET代碼獲得zui佳的性能嗎?本書將揭開CLR的神秘面紗,不僅教你如何編寫性能優異的代碼,還能讓你“知其所以然”。作者參與設計並搭建的繫統是世界上zui大型的高性能.NET繫統之一,他在本書中融入了很多的經驗教訓。
本書不僅講解了CLR的工作機制,還詳細介紹了當前獲得zui佳性能的新方法,涉及.NET環境下的**優化、對CLR功能的深入剖析、免費的工具和教程推薦、頗有價值的案例軼事、評測並提升性能的具體步驟。
通過閱讀本書,你將能夠
● 選擇性能評測指標並知道理由。 ● 使用眾多免費的好工具來快速解決問題。 ● 理解.NET垃圾回收機制及其對應用程序的影響。 ● 采用高效的編碼模式,以便優化垃圾回收的性能。 ● 對常見的垃圾回收性能問題做出診斷。 ● 降低JIT編譯的開銷。 ● 讓多線程技術得以穩定高效地使用,避免發生同 步問題。 ● 選用.NET特性和API時,能夠揚長避短。 ● 利用代碼生成(Code Generation)技術來避 免性能問題。 ● 對性能進行全面測評,發現隱藏較深的性能問題。 ● 利用性能計數器和ETW事件對程序進行量化分析。 ● 使用zui新、zui強大的.NET特性。 ● 確保代碼能在移動設備上正確運行。 ● 建立性能至上的開發團隊。 內容簡介 本書詳細介紹了如何編寫高性能的.NET程序,在zui大化托管代碼性能的同時,還能保證.NET的特性優勢。 本書循序漸進地深入.NET的各個部分,特別是底層的公共語言運行時(Common Language Runtime,CLR),了解CLR是如何完成內存管理、代碼編譯、並發處理等工作的。本書還詳細介紹了.NET的架構,探討了編程方式如何影響程序的整體性能,在全書中,還分享了發生在微軟的一些趣聞軼事。本書的內容偏重於服務器程序,但幾乎所有內容也同樣適用於桌面端和移動端應用程序。 本書條理清楚,言簡意賅,適合有一定.NET基礎的讀者和想要提高代碼性能的C#程序員學習參考。 作者簡介 作者簡介 Ben Watson從2008年開始就已經是微軟的軟件工程師了。他在必應(Bing)平臺的研發團隊工作時,建立了一套世界一流、基於.NET的高性能服務應用,足以應付幾千臺電腦發起的大容量、低延遲請求,用戶數量高達幾百萬。他在業餘時間喜歡參加地理尋寶遊戲、閱讀各種書籍、欣賞古典音樂,享受與妻子Leticia、女兒Emma的歡聚時刻。他還是《C# 4.0 How-To》一書的作者,該書已由Sams出版。
譯者簡介 戴旭,1973年生,浙江蕭山人,西安建築科技大學計算機應用學士,杭州電子科技大學軟件工程碩士,高級項目管理師。 目錄 目錄
第1章性能評估及工具\t1 1.1選擇評估內容\t1 1.2平均值還是百分位值\t3 1.3評估工具\t4 1.3.1Visual Studio\t5 1.3.2性能計數器\t7 1.3.3ETW事件\t13 1.3.4PerfView\t15 1.3.5CLR Profiler\t18 1.3.6Windbg\t20 1.3.7.NET IL分析器\t24 1.3.8MeasureIt\t25 1.3.9代碼中的工具\t25 1.3.10SysInternals工具\t26 1.3.11數據庫\t26 1.3.12其他工具\t27 1.3.13評估本身的開銷\t27 1.4小結\t27
第2章垃圾回收\t28 2.1基本運作方式\t30 2.2配置參數\t33 2.2.1工作站模式還是服務器模式\t33 2.2.2後臺垃圾回收\t34 2.2.3低延遲模式 (Low Latency Mode)\t35 2.3減少內存分配量\t36 2.4首要規則\t37 2.5縮短對像的生存期\t37 2.6減少對像樹的深度\t38 2.7減少對像間的引用\t38 2.8避免對像固定\t38 2.9避免使用終結方法\t39 2.10避免分配大對像\t40 2.11避免緩衝區復制\t41 2.12對長期存活對像和大型對像進行 池化\t41 2.13減少LOH的碎片整理\t45 2.14某些場合可以強制執行完全 回收\t46 2.15必要時對LOH進行碎片 整理\t47 2.16在垃圾回收之前獲得通知\t47 2.17用弱引用作為緩存\t50 2.18評估和研究垃圾回收性能\t51 2.18.1性能計數器\t51 2.18.2ETW事件\t52 2.18.3垃圾回收的耗時\t53 2.18.4內存分配的發生時機\t54 2.18.5查看已在LOH中分配內存的 對像\t55 2.18.6查看內存堆中的全部對像\t57 2.18.7為什麼對像沒有被回收\t60 2.18.8哪些對像被固定著\t61 2.18.9內存碎片的產生時機\t63 2.18.10對像位於第幾代內存堆中\t67 2.18.11第0代內存堆中存活著哪些 對像\t68 2.18.12誰在顯式調用GC.Collect 方法\t70 2.18.13進程中存在哪些弱引用\t70 2.19小結\t71
第3章JIT編譯\t72 3.1JIT編譯的好處\t73 3.2JIT編譯的開銷\t73 3.3JIT編譯器優化\t75 3.4減少JIT編譯時間和程序啟動 時間\t76 3.5利用Profile優化JIT編譯\t78 3.6使用NGEN的時機\t78 3.6.1NGEN本機映像的優化\t79 3.6.2本機代碼生成\t80 3.7JIT無法勝任的場合\t80 3.8評估\t81 3.8.1性能計數器\t81 3.8.2ETW事件\t82 3.8.3找出JIT耗時最長的方法和 模塊\t82 3.9小結\t83
第4章異步編程\t84 4.1使用Task\t86 4.2並行循環\t89 4.3避免阻塞\t92 4.4在非阻塞式I/O中使用Task\t92 4.4.1適應Task的異步編程模式\t94 4.4.2使用高效I/O\t96 4.5async和await\t97 4.6編程結構上的注意事項\t99 4.7正確使用Timer對像\t100 4.8合理設置線程池的初始大小\t101 4.9不要中止線程\t102 4.10不要改變線程的優先級\t102 4.11線程同步和鎖\t103 4.11.1真的需要操心性能嗎\t103 4.11.2我真的需要用到同步鎖嗎\t104 4.11.3多種同步機制的選擇\t105 4.11.4內存模型\t106 4.11.5必要時使用volatile\t106 4.11.6使用Interlocked方法\t108 4.11.7使用Monitor(鎖)\t110 4.11.8該在什麼對像上加鎖\t112 4.11.9異步鎖\t112 4.11.10其他加鎖機制\t115 4.11.11可並發訪問的集合類\t116 4.11.12使用更大範圍的鎖\t116 4.11.13替換整個集合\t117 4.11.14將資源復制給每個線程\t118 4.12評估\t118 4.12.1性能計數器\t118 4.12.2ETW事件\t119 4.12.3查找爭用情況最嚴重的鎖\t120 4.12.4查找線程在I/O的阻塞位置\t120 4.12.5利用Visual Studio可視化展示 Task和線程\t121 4.13小結\t122
第5章編碼和類設計的一般規則\t123 5.1類和“結構”的對比\t123 5.2重寫“結構”的Equals和 GetHashCode方法\t126 5.3虛方法和密封類\t128 5.4接口的分發(Dispatch)\t128 5.5避免裝箱\t129 5.6for和foreach的對比\t131 5.7強制類型轉換\t133 5.8P/Invoke\t134 5.9委托\t136 5.10異常\t137 5.11dynamic\t138 5.12自行生成代碼\t141 5.13預處理\t146 5.14評估\t146 5.14.1ETW事件\t146 5.14.2查找裝箱指令\t147 5.14.3第一時間發現“異常”\t149 5.15小結\t150
第6章使用.NET Framework\t151 6.1全面了解所用API\t151 6.2多個API殊途同歸\t152 6.3集合類\t152 6.3.1泛型集合類\t153 6.3.2可並發訪問的集合類\t154 6.3.3其他集合類\t156 6.3.4創建自定義集合類型\t156 6.4字符串\t157 6.4.1字符串比較\t157 6.4.2ToLower和ToUpper\t158 6.4.3字符串拼接\t158 6.4.4字符串格式化\t158 6.4.5ToString\t159 6.4.6避免字符串解析\t159 6.5應避免使用正常情況下也會拋出 “異常”的API\t159 6.6避免使用會在LOH分配內存的 API\t159 6.7使用延遲初始化\t160 6.8枚舉的驚人開銷\t161 6.9對時間的跟蹤記錄\t162 6.10正則表達式\t164 6.11LINQ\t164 6.12讀取文件\t165 6.13優化HTTP參數及網絡 通訊\t166 6.14反射\t167 6.15評估\t168 6.16性能計數器\t168 6.17小結\t169
第7章性能計數器\t170 7.1使用已有的計數器\t170 7.2創建自定義計數器\t171 7.2.1Averages\t172 7.2.2Instantaneous\t173 7.2.3Deltas\t173 7.2.4Percentages\t173 7.3小結\t174
第8章ETW事件\t175 8.1定義事件\t175 8.2在PerfView中使用自定義 事件\t178 8.3創建自定義ETW事件 Listener\t179 8.4獲取EventSource的詳細 信息\t184 8.5自定義PerfView分析插件\t186 8.6小結\t189
第9章Windows Phone\t190 9.1評估工具\t190 9.2垃圾回收和內存\t191 9.3JIT\t191 9.4異步編程和內存模式\t192 9.5其他問題\t193 9.6小結\t193
第10章代碼安全性\t194 10.1充分理解底層的操作繫統、API 和硬件\t194 10.2把API調用限制在一定範圍的 代碼內\t194 10.3把性能要求很高、難度很大的 代碼集中起來並加以抽像\t199 10.4把非托管代碼和不安全代碼 隔離出來\t200 10.5除非有證據證明,不然代碼清晰 度比性能更重要\t200 10.6小結\t200
第11章建立追求性能的開發團隊\t201 11.1了解最影響性能的關鍵 區域\t201 11.2有效的測試\t201 11.3性能測試平臺和自動化\t202 11.4隻認數據\t203 11.5有效的代碼復查\t203 11.6 訓練\t204 11.7 小結\t205 附錄A盡快啟動對應用程序的性能 討論\t206 定義指標\t206 分析CPU占用情況\t206 分析內存占用情況\t206 分析JIT\t207
分析異步執行性能\t207 附錄B大O表示法\t209 常見算法及其復雜度\t211 排序算法\t211 圖論算法\t211 查找算法\t212 特殊案例\t212
附錄C參考文獻\t213 參考書籍\t213 相關人士及博客\t213 查看全部↓
" | | | | | |