軟體性能
出自 MBA智库百科(https://wiki.mbalib.com/)
軟體性能(Software Performance)
目錄 |
軟體性能是指軟體響應及時度滿足用戶要求的程度。
軟體性能是軟體在運行的過程中表現出來的時間和空間效率與用戶的需求之間的吻合程度。如果時間和空間效率與其心理期待一致或能夠達到用戶的即定要求,用戶就認為這個軟體的性能是符合的;反之,此軟體的性能則被認為是有問題的或者用戶難以接受的。從巨集觀上看,軟體性能就是軟體運行時完成某一功能的響應性特征,以及增加軟體功能時保持響應性的能力,即可伸縮性特征。
狹義地講,軟體性能是指軟體在儘可能少地占用系統資源的前提下,儘可能高地提高運行速度;廣義地講,軟體性能是指軟體質量的屬性,包括正確性、可靠性、易用性、安全性、可擴展性、兼容性和可移植性。軟體的性能是軟體的一種非功能特性,它關註的不是軟體是否能夠完成特定的功能,而是在完成該功能時展示出來的及時性。由於感受軟體性能的主體是人,不同的人對於同樣的軟體能有不同的主觀感受,而且不同的人對於軟體性能關心的視角也不同。由於目前網路應用非常普遍,因此下麵將介紹網路應用軟體性能的指標和軟體性能的視角。
- 用戶視角
對用戶而言,性能就是響應時間。用戶甚至不關心響應時間中哪些是軟體造成的,哪些是硬體造成的。但用和感受到的響應時間既有客觀成分,也有主觀成分,甚至是心理因素 。
- 管理員視角
管理員需要使用軟體提供的管理功能等手段來方便普通用戶使用。這類用戶首先關註普通用戶感受到的軟體性能。其次,管理員需要進一步關註如何利用管理功能進行性能調優。
- 開發人員視角
開發人員的視角與管理員的視角基本一致,但開發人員需要更深入地關註軟體性能。在開發過程中,開發人員希望能夠儘可能地開發出高性能的軟體。
軟體性能評價方法大致可以分為兩類:測量方法和模型方法。測量方法在軟體系統的運行過程中利用一定的測量設備或測量程式得到各種性能指標。這是最直接也是最簡單的方法,但是這種方法比較費時而且只能在系統設計編碼完成以後進行實施,對軟體設計過程起不到應有的修正作用。
- 響應時間
響應時間是指系統對請求作出響應的時間。直觀上看,這個指標與人對軟體性能的主觀感受是非常一致的,因為它完整地記錄了整個電腦系統處理請求的時間。由於一個系統通常會提供許多功能,而不同功能的處理邏輯也千差萬別,因而不同功能的響應時間也不盡相同,甚至同一功能在不同輸入數據的情況下響應時間也不相同。所以,在討論一個系統的響應時間時,人們通常是指該系統所有功能的平均時間或者所有功能的最大響應時間。當然,往往也需要對每個或每組功能討論其平均響應時間和最大響應時間。
- 系統響應時間和應用延遲時間
雖然軟體性能指標本身只涉及軟體性能的度量,但考慮到軟體性能測試的主要目的是測試和改善所開發軟體的性能,對於複雜的網路化的軟體而言,簡單地用響應時間進行度量就不一定合適了。
考慮一個普通的網站系統。開發該網站系統時,軟體開發實際上只集中在伺服器端,因為客戶端的軟體是標準的瀏覽器。雖然用戶看到的響應時間時使用特定客戶端電腦上的特定瀏覽器瀏覽該網站的響應時間,但是在討論軟體性能時更關心所開髮網站軟體本身的“響應時間”。
吞吐量是指系統在單位時間內處理請求的數量。對於無併發的應用系統而言,吞吐量與響應時間成嚴格的反比關係,實際上此時吞吐量就是響應時間的倒數。前面已經說過,對於單用戶的系統,響應時間(或者系統響應時間和應用延遲時間)可以很好地度量系統的性能,但對於併發系統,通常需要用吞吐量作為性能指標。
- 併發用戶數
併發用戶數是指系統可以同時承載的正常使用系統功能的用戶的數量。與吞吐量相比,併發用戶數是一個更直觀但也更籠統的性能指標。實際上,併發用戶數是一個非常不准確的指標,因為用戶不同的使用模式會導致不同用戶在單位時間發出不同數量的請求。
- 資源利用率
資源利用率反映的是在一段時間內資源平均被占用的情況。對於數量為1的資源,資源利用率可以表示為被占用的時間與整段時間的比值;對於數量不為1的資源,資源利用率可以表示為在該段時間內平均被占用的資源數與總資源數的比值。