編寫高性能的.net代碼.pdf
http://www.www.srpcoatings.com
2020年3月19日
![]() |
| 第1頁 |
![]() |
| 第9頁 |
![]() |
| 第11頁 |
![]() |
| 第28頁 |
![]() |
| 第35頁 |
![]() |
| 第182頁 |
參見附件(14876KB,231頁)。
編寫高性能的.net代碼是關(guān)于代碼編寫的書籍,主要講述了編寫.net的程序,編碼和類設(shè)計的一般規(guī)則,性能計數(shù)器建立追求性能的開發(fā)團隊等等相關(guān)的編程內(nèi)容。

內(nèi)容簡介
本書詳細介紹了如何編寫高性能的.NET程序,在最大化托管代碼性能的同時,還能保證.NET的特性優(yōu)勢。
本書循序漸進地深入.NET的各個部分,特別是底層的公共語言運行時(Common Language Runtime,CLR),了解CLR是如何完成內(nèi)存管理、代碼編譯、并發(fā)處理等工作的。本書還詳細介紹了.NET的架構(gòu),探討了編程方式如何影響程序的整體性能,在全書中,還分享了發(fā)生在微軟的一些趣聞軼事。本書的內(nèi)容偏重于服務(wù)器程序,但幾乎所有內(nèi)容也同樣適用于桌面端和移動端應(yīng)用程序。
本書條理清楚,言簡意賅,適合有一定.NET基礎(chǔ)的讀者和想要提高代碼性能的C#程序員學(xué)習(xí)參考。
作者信息
Ben Watson 從2008年開始就已經(jīng)是微軟的軟件工程師了。他在必應(yīng)(Bing)平臺的研發(fā)團隊工作時,建立了一套世界一流、基于.NET的高性能服務(wù)應(yīng)用,足以應(yīng)付幾千臺電腦發(fā)起的大容量、低延遲請求,用戶數(shù)量高達幾百萬。他在業(yè)余時間喜歡參加地理尋寶游戲、閱讀各種書籍、欣賞古典音樂,享受與妻子Leticia、女兒Emma的歡聚時刻。他還是《C# 4.0 How-To》一書的作者,該書已由Sams出版。
編寫高性能的.net代碼在線
在設(shè)計系統(tǒng)和規(guī)劃性能評估方案時,有一條經(jīng)驗也許很有用,那就是設(shè)想一下理論上的最佳性能。如果你能去掉其他所有開銷,比如垃圾回收、JIT、線程中斷,以及其他任何你能想到的開銷,然后還能剩下什么資源用來干活呢?對于負載、內(nèi)存占用、CPU占用、內(nèi)部同步等資源,你能想到的理論極限是多少?這通常依賴于程序所處的硬件和操作系統(tǒng)。比如,有1臺16個處理器、64GB內(nèi)存的服務(wù)器,帶有2條10GB的網(wǎng)絡(luò),你需要估計一下最大并行處理能力、內(nèi)存中最多能存放多少數(shù)據(jù),以及每秒的網(wǎng)絡(luò)吞吐量是多少。這能幫助你作出規(guī)劃,假如1臺服務(wù)器不夠用,那到底需要多少臺同檔次的機器。所有這些信息都是性能評估目標(biāo)的絕佳來源。
你大概聽說過一個說法:“過早的優(yōu)化是萬惡之源”,這是由Donald Knuth首先提出的。這句話僅適用于代碼層面的微觀優(yōu)化。在設(shè)計階段時,你需要理解整體架構(gòu)和約束條件,不然你就會遺漏一些關(guān)鍵點,這將嚴(yán)重制約程序的運行。你必須在設(shè)計階段就把性能目標(biāo)預(yù)先考慮進去。
在軟件設(shè)計階段,就得考慮安全性等很多方面的問題。性能問題也一樣,不能事后再議,必須從一開始就提出明確的目標(biāo)。要想從頭開始把一個已有的應(yīng)用程序重新設(shè)計一遍,這是不可能的,這比一開始就考慮周全要付出多得多的代價。在項目初始階段的性能分析,與開發(fā)完成即將進入測試階段的分析是不一樣的。在初始階段必須得保證設(shè)計的靈活性,確保技術(shù)路線在理論上能完成任務(wù),確保在架構(gòu)上沒有大的問題以免除后患。一旦項目進入測試、部署和維護階段,就得把更多的精力投入微觀優(yōu)化、具體代碼方式的分析、減少內(nèi)存占用等工作。
最后,你還需要了解阿姆達爾定律(Ahmdals's Law,參見http://www.writinghighperf.net/go/3[]),特別是其應(yīng)用于順序執(zhí)行程序的情況,以便能找到哪部分程序是需要優(yōu)化的。那些不能明顯改善整體性能的微觀優(yōu)化,多半是在浪費時間。為了獲得最佳效果,應(yīng)該優(yōu)先優(yōu)化那些效率最低的部分。優(yōu)化永遠不可能面面俱到,得有一個明智的起點。因此,準(zhǔn)備好優(yōu)化目標(biāo),再有一套優(yōu)秀的評估系統(tǒng),這些都是十分重要的。不然你連從哪兒開始都不知道。
編寫高性能的.net代碼截圖

您現(xiàn)在查看是摘要介紹頁, 詳見PDF附件(14876KB,231頁)。





