亚洲中文字幕无码av在线,真人裸交120秒试看,99热线精品大全在线观看,狠狠色噜噜狠狠狠狠777米奇小说,都市激综合小说区另类区

新聞動態(tài) News

返回

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

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

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

 

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

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

  功能以外的需求

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

  相比較“確保它快”來說,以上兩種方式咋一看并不壞,畢竟它讓你有了一個明確的引導(dǎo)目標(biāo),不是嗎?事實上,上面的比“快”更糟糕。因為它包含了一些看起來可以用作終極目標(biāo)的數(shù)字。

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

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

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

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

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

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

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

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

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

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

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

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

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

  產(chǎn)能計劃

  結(jié)論

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

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