要作好性能測試,首先我想必需要了解影響性能的幾個因素。算法
參閱了各類資料,關於性能方面有太多的學問。我想作個小的總結。數據庫
從程序設計,時間上來講,分爲數據傳輸時間,數據存儲時間和數據處理時間。瀏覽器
所以,針對時間上的,咱們能夠考慮如下的方法來提升性能:緩存
1)下降算法自己的複雜性【好比,將複雜對象轉化爲聚合關係:將一個複雜類拆分紅由兩個或兩個以上的類經過聚合關係造成的新類】;服務器
2)傳輸時間:若是不一樣處理器之間的數據傳輸成爲影響性能的主要瓶頸,則應從新審查對象在不一樣處理器上的分佈問題。調整的目標,一是減小不一樣處理器之間數據的傳輸量, 二是縮短數據傳輸的路徑;網絡
3)存取時間:若是系統執行某些功能時,須要大量地頻繁地訪問外部存儲設備,那麼在面向對象設計方法中能夠在內存空間中設計一個緩存空間,這樣那些常常被使用的數據就會有較多的機會存儲於緩存空間當中;併發
4)處理時間:對象的封裝性致使對象的屬性不能被另外一個對象的服務直接訪問,只能經過消息傳遞來完成。若存在這樣一些消息傳遞頻繁的類,就能夠採用合併方法將其合併爲一個類;另外能夠在程序設計中,增長一些屬性來減小重複計算量。app
從系統性能幾個指標上來看,包括:響應時間、吞吐量、用戶併發數、資源利用率性能
1)響應時間:指系統對用戶請求做出響應的時間。
從用戶的角度,響應時間=呈現時間+系統響應時間。呈現時間也就是客戶端的瀏覽器在接收到網站發來的數據時呈現頁面所需的時間。系統響應時間就是客戶端提出用戶 請求到客戶端接收到服務器發來的數據所需的時間。顯然,咱們測試一個系統軟件性能時,呈現時間是與客戶端自己硬件條件和瀏覽器有關,咱們更關心的是系統響應時間。
那麼咱們如今就來看看系統響應時間。能夠這樣看,系統響應時間=應用服務器處理時間+數據庫服務器處理時間+網絡數據傳輸時間。
這樣分析下來,咱們就能很清晰地看出影響響應時間的幾個主要因素了。
2)吞吐量:指的是系統在單位時間內處理請求的數量。
對於單用戶的系統而言,響應時間能夠很好地度量系統的性能,但對於併發系統,吞吐量常最爲比較好的性能指標。系統的吞吐量越大,說明系統在單位時間內完成的用戶 或系統請求越多, 系統的資源獲得充分利用。
吞吐量=併發數/平均響應時間
3)併發用戶數:指系統能夠同時承載的正常使用系統功能的用戶的數量。
併發用戶數經常使用來度量服務器併發容量和同步協調能力。這個指標是看系統運行期間同一時刻進行業務操做的用戶數量。該數量取決於用戶操做習慣、業務操做間隔和單筆 交易的響應時間。使用頻率較低的應用系統併發用戶數通常爲在線用戶數的5%左右。使用頻率較高的應用系統併發用戶數通常爲在線用戶數的10%左右。
對於網站系統,會有三個關於用戶數的統計數字:註冊用戶數、在線用戶數和同時發請求用戶數。咱們關注的通常是後兩個數字。
4)資源利用率:反映的是在一段時間內資源平均被佔用的狀況
對於數量爲1的資源,資源利用率能夠表示爲被佔用的時間與整段時間的比值;
對於數量大於1的資源,資源利用率能夠表示爲在該段時間內平均被佔用的資源數與總資源數的比值。
常見的系統資源包括:CPU、內存、磁盤、網絡等等。
先總結這麼多,後面還會繼續更新。
Feel free to tell me if you have any questions and suggestions.