.net性能测试和优化1 基本概念
軟件的性能問題是個繞不開的問題,最近看了這方面的一本書,把主要的內(nèi)容筆記一下
Performance, load, and stress testing
性能測試 負載測試 壓力測試
http://www.51testing.com/?uid-61747-action-viewspace-itemid-3036
性能測試的目的不是去找bugs,而是排除系統(tǒng)的瓶頸,以及為以后的回歸測試建立一個基準。而性能測試的操作,實際上就是一個非常小心受控的測量分析過程。
負載測試的目的找到一些在測試流程中前面的階段所進行的粗略測試中沒有被找出的bugs,例如,內(nèi)存管理bugs,內(nèi)存泄露,緩沖器溢出等等。保證應(yīng)用程序達到性能測試中確定的性能基線。這個可以在運行回歸試驗時,通過加載特定的最大限度的負載來實現(xiàn)。
盡管性能測試和負載測試似乎很像,但他們的目的還是有差異的。一方面,性能測試使用負載測試的技術(shù),工具,以及用不同的負載程度來測度和基準化系統(tǒng)。在另一方面來講,負載測試是在一些已經(jīng)定義好的負載程度上進行測試的,通常對系統(tǒng)加上最大負載之后,系統(tǒng)應(yīng)該仍然可以提供全部功能。這里需要明確一點,負載測試并不是要對系統(tǒng)加載上過度的負載而使系統(tǒng)不能工作,而是要使系統(tǒng)像一個上滿了油的機器嗡嗡叫.
壓力測試是指通過對系統(tǒng)加載過度的資源或者例系統(tǒng)沒有應(yīng)該具有的令系統(tǒng)可以正常運作的資源,來使系統(tǒng)崩潰(在某些情況的時候,它又可以叫做負面測試)。
Profiling
.net程序有兩種profiling的過程: performance-based / memory-based
? performance-based profiling
n 性能Performance profiling measures how long a method or function may take to run
? memory-based profiling
n 內(nèi)存 memory profiling measures how much memory certain aspects of the application (or even individual objects) use
測試度量基本工具和查看指標 Performance and Load Test Metrics
性能監(jiān)視器工具PerfMon tool (perfmon.exe)【W(wǎng)indows環(huán)境內(nèi)置的一個工具】,如下是些參考資料,這個基本工具可以用于初步的偵測
MSDN http://technet.microsoft.com/zh-cn/library/cc749249(WS.10).aspx
使用“性能監(jiān)視器”監(jiān)視系統(tǒng)性能/運行情況 http://www.cnblogs.com/MaoBisheng/archive/2010/07/18/1780024.html
性能監(jiān)視器使用http://wenku.baidu.com/view/255287f9941ea76e58fa04a9.html
使用性能監(jiān)視器找出硬件瓶頸http://www.ygbk.info/archives/39.html
http://wenku.baidu.com/view/e3ee86a3b0717fd5360cdc16.html
Visual Studio Team Test
開發(fā)工具進行測試
Chapter 15 — Measuring .NET Application Performance
http://msdn.microsoft.com/en-us/library/ms998579.aspx
基本度量Basic metrics
CPU利用率和內(nèi)存使用率
Web程序度量Web application basic metrics
response time / requests per second
Time to First Byte (TTFB)
其他的度量項
一些主要的度量項
基本類別
Category: Processor
? % Processor Time
Category: Process
? % Processor Time
? Working Set
Category: Memory
? Available Mbytes
? Pages/Sec
? Page Faults/Sec
Category: .NET CLR Memory
? Gen 0 heap size, Gen 1 heap size, Gen 2 heap size
? #Gen 0 Collections, #Gen 1 Collections, #Gen 2 Collections
Category: .NET CLR Exceptions
? # of Exceps Thrown / sec
Category: .NET CLR Jit
? % Time in Jit
Category: .NET CLR Security
? % Time in RT Checks
Category: .NET CLR Locks and Threads
? Total # of Contentions
? Contention Rate/Sec
Web/ASP.NET 類別
Category: ASP.NET
? Application Restarts
Category: ASP.NET Applications
? Pipeline Instance Count
? Requests in Application Queue
? Request Execution Time
? Requests/Second
Database
Category: Physical Disk
? Avg. Disk Queue Length
Category: SQL Server: SQL Statistics
? Batch Requests/Sec
Category: SQL Server: Databases
? Transactions/Sec
本系列是系統(tǒng)的看了下面的圖書的一些總結(jié)和心得
.NET Performance Testing and Optimization
The Complete Guide
Paul Glavich and Chris Farrell
ISBN: 978-1-906434-40-3
轉(zhuǎn)載于:https://www.cnblogs.com/2018/archive/2011/07/02/2096179.html
總結(jié)
以上是生活随笔為你收集整理的.net性能测试和优化1 基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Effective C#: Item 3
- 下一篇: 在用户离开页面(刷新、后退、关闭等)时提