国产做a∨在线视频播放_免费播放一级性爱大片_国产成人在线综合网_在线免费观看黄色毛片网站

新聞動(dòng)態(tài) News

返回

比“快速”更糟?如何定義性能需求

摘要:面對(duì)“快速”等模糊化性能需求應(yīng)該如何去處理?本文旨在拋磚引玉,在遇到模糊定義的性能需求時(shí),會(huì)有一系列的問(wèn)題擴(kuò)展這些模糊的需求。當(dāng)然與業(yè)務(wù)者的溝通有助于你發(fā)現(xiàn)可衡量的、特定的目標(biāo)。

比“快速”更糟?如何定義性能需求

 

  上面的引用應(yīng)該會(huì)讓任何有經(jīng)驗(yàn)的工程師感到脊背發(fā)涼。這里的“快速”的具體含義是什么?

  除非你對(duì)“快速”部分有一個(gè)定義,否則你將永遠(yuǎn)陷入優(yōu)化周期,因?yàn)槊總€(gè)應(yīng)用都可以不斷的被創(chuàng)建的更快一些。然而在現(xiàn)實(shí)生活中,性能并不是唯一一個(gè)需要我們完成的要求。所以為了能提供最大的價(jià)值,我們應(yīng)該知道什么時(shí)候該停止性能優(yōu)化?;蛘吒匾氖?,引導(dǎo)我們的性能目標(biāo)應(yīng)該是什么樣的。

  功能以外的需求

  企業(yè)已經(jīng)越來(lái)越好的表達(dá)軟件的功能需求。但是考慮到功能需求以外的事情,比如可用性、兼容性或者性能,這個(gè)時(shí)候企業(yè)主的描述常常是相當(dāng)于一片空白。而這片空白最常見(jiàn)的形式就是“確保它快”或“有沒(méi)有更好的情況”,你對(duì)此會(huì)有類似于一下的處理方式:

  相比較“確保它快”來(lái)說(shuō),以上兩種方式咋一看并不壞,畢竟它讓你有了一個(gè)明確的引導(dǎo)目標(biāo),不是嗎?事實(shí)上,上面的比“快”更糟糕。因?yàn)樗艘恍┛雌饋?lái)可以用作終極目標(biāo)的數(shù)字。

  實(shí)際上,這些數(shù)字充其量只能作為基礎(chǔ)使用。你可以從這兩個(gè)出發(fā)擴(kuò)充需求。

  95%實(shí)施在系統(tǒng)內(nèi)的業(yè)務(wù)的響應(yīng)時(shí)間必須在5秒內(nèi)

  剩下的5%是什么?響應(yīng)時(shí)間變?yōu)?0秒或更多可以嗎?所以在設(shè)定的時(shí)候不要固定單一的目標(biāo),應(yīng)該有一個(gè)可接受的延遲分布:

  對(duì)于上面兩種情況我們?cè)O(shè)定的目標(biāo)應(yīng)該是不同的,第一種響應(yīng)要求要比5秒短,而第二種則可以適當(dāng)?shù)姆艑捯蟆?p/>

  當(dāng)使用到測(cè)量值時(shí)系統(tǒng)的負(fù)載是什么?有多少其他操作可以同時(shí)進(jìn)行?這些都是你應(yīng)該連接潛在相關(guān)的加載/吞吐量需求的地方。

  響應(yīng)時(shí)間是在終端用戶環(huán)境中測(cè)量的嗎(如瀏覽器響應(yīng)或Android應(yīng)用更新結(jié)果)?或者測(cè)量是按照最后一個(gè)字節(jié)從服務(wù)器端發(fā)出時(shí)算的?為了避免含糊不清的定義測(cè)量標(biāo)準(zhǔn),在這里我們需要對(duì)延遲測(cè)量精確化。

  批量處理作業(yè)/異步流程?每個(gè)月批量處理計(jì)算最終信用卡余額的延遲時(shí)間是兩小時(shí)還是5秒鐘?對(duì)于大型業(yè)務(wù)完整的財(cái)務(wù)報(bào)表異步的存入到CSV中并在10分鐘后通過(guò)郵件的方式發(fā)送?所以,明確一件事的操作延時(shí)是否要緊也是重要的。

  通過(guò)以上幾段的分析,我們可以將第一種方式的性能描述細(xì)分為:

  系統(tǒng)必須支持100個(gè)并發(fā)用戶

  100個(gè)用戶通過(guò)CDN每10秒點(diǎn)擊一次你網(wǎng)站的靜態(tài)圖片,我想你閉著眼睛就可以構(gòu)建這樣的一個(gè)系統(tǒng)。100個(gè)用戶同時(shí)在你的網(wǎng)站上編碼4K視頻文件,這時(shí)候就難以想象了。

  當(dāng)考慮到真正的并發(fā)性時(shí)事情從模糊轉(zhuǎn)向了毫無(wú)意義。比如將“100個(gè)并發(fā)用戶”理解為“100個(gè)操作并發(fā)的被100個(gè)線程處理”。假設(shè)每個(gè)這樣的操作過(guò)程需要10秒,然后系統(tǒng)的吞吐量為10ops/sec。如果你現(xiàn)在縮短10倍的操作時(shí)間,即每個(gè)操作過(guò)程需要1秒,系統(tǒng)的吞吐量將提高到100ops/sec。但是你會(huì)發(fā)現(xiàn)前一種并不滿足“100個(gè)真正的并發(fā)用戶”需求,只同時(shí)處理10個(gè)操作。這是一個(gè)失敗的需求

  取代“并發(fā)用戶”或其他類似的條款,這類需求應(yīng)該更清楚的表達(dá)某些用戶的行為。將這些描述轉(zhuǎn)化為潛在的負(fù)載測(cè)試,以允許你模擬所需要的負(fù)載。

  在這里不推薦測(cè)量吞吐量,現(xiàn)實(shí)生活中的應(yīng)用往往是多功能的并被用于動(dòng)態(tài)情況。這使得很難通過(guò)吞吐量來(lái)表達(dá)性能目標(biāo)。但是如果是特定的只用于某件事的應(yīng)用,如發(fā)票支付,吞吐量就成了衡量特定目標(biāo)的好方法。

  產(chǎn)能計(jì)劃

  結(jié)論

  以上所列的描述是不完整的。舉例來(lái)說(shuō),當(dāng)涉及到可伸縮性和可用性時(shí),你會(huì)面臨一個(gè)全新的要求。本文旨在拋磚引玉,在你下次遇到模糊定義的性能需求時(shí),你會(huì)有一系列的問(wèn)題擴(kuò)展這些模糊的需求。

  與業(yè)務(wù)者的溝通有助于你發(fā)現(xiàn)可衡量的、特定的目標(biāo)。從企業(yè)者來(lái)看,自然是希望所有操作的“超快速”。而為了實(shí)現(xiàn)這一目標(biāo),無(wú)外乎還是要?dú)w結(jié)到成本上。