性能調(diào)優(yōu)通俗來講就是對計算機硬件、操作系統(tǒng)和應(yīng)用有相當(dāng)深入的了解,調(diào)節(jié)三者之間的關(guān)系,實現(xiàn)整個系統(tǒng)(包括硬件、操作系統(tǒng)、應(yīng)用)的性能最大化,并能不斷的滿足現(xiàn)有的業(yè)務(wù)需求。在判定軟件存在性能缺陷和瓶頸之后進行優(yōu)化,在性能測試中屬于很重要的一個環(huán)節(jié)。
性能調(diào)優(yōu)主要遵從以下流程:
第一步定位問題:判端是代碼、數(shù)據(jù)庫及中間件配置、操作系統(tǒng)配置、網(wǎng)絡(luò)配置、硬件配置哪個環(huán)節(jié)是問題來源,只有找準(zhǔn)方向才能找到問題;
第二步確定原因,具體到算法、共享鎖、SQL效率低、索引、線程數(shù)、等待超時時間、帶寬哪個環(huán)節(jié)是問題根源,找到問題原因才有可能解決問題;
第三步就是確定優(yōu)化目標(biāo)和方案確定,例如提高吞吐量到xxx,縮短響應(yīng)時間到xxx,提高最大并發(fā)到xxx……這一步是根據(jù)實際業(yè)務(wù)模型做出的戰(zhàn)略調(diào)整,注意結(jié)合實際,切忌異想天開;
第四步就是復(fù)測,測試人員使用原來的場景和腳本執(zhí)行測試,對比測試結(jié)果判斷是否達到調(diào)優(yōu)目標(biāo),沒有達到目標(biāo)就要反復(fù)測試貼近目標(biāo);
最后一步是分析結(jié)果,評估目標(biāo)是否達到和系統(tǒng)性能改善情況,以此來判斷優(yōu)化調(diào)整是否可以結(jié)束。
常用調(diào)優(yōu)方法:
限流,通常是限制發(fā)送packet的頻率,從而在網(wǎng)絡(luò)IO消耗可接受的情況下來發(fā)送packget。
內(nèi)存消耗嚴(yán)重的解決方法:
釋放不必要的引用:代碼持有了不需要的對象引用,造成這些對象無法被GC,從而占據(jù)了JVM堆內(nèi)存。(使用ThreadLocal:注意在線程內(nèi)動作執(zhí)行完畢時,需執(zhí)行ThreadLocal.set把對象清除,避免持有不必要的對象引用,使用對象緩存池:創(chuàng)建對象要消耗一定的CPU以及內(nèi)存,使用對象緩存池一定程度上可以降低JVM堆內(nèi)存的使用。
軟件測評報告請聯(lián)系王經(jīng)理:18684048962 更多資訊請關(guān)注公眾號:軟件測評閑聊站
轉(zhuǎn)載自網(wǎng)絡(luò)