一、TP 指標
在對系統進行性能測試或性能監控時候,TP 指標
是一種比較常見的性能參數,包括 TP50、TP99、TP999 等等。
通俗點說,假設爲了測試某接口性能,對其調用100次,將每次的響應時間升序排序,假設響應時間排序結果爲:1、2、3…99、100 毫秒。
那麼:
也就是說,該接口 TP50 達到了 50 毫秒的水平,也就是說請求該接口有 50% 的情況耗時在 50 毫秒以下。
同理:
也就是說,該接口 TP999 達到了 100 毫秒的水平,也就是說請求該接口有 99.9% 的情況耗時在 100 毫秒以下。
需要注意的是,一般在 TP 指標中,如果對應的序號不是整數,一般向上取整。例如在上例的 TP999 中,序號 99.9 不存在,取了序號 100 來計算。
二、百分位數
TP 指標脫離了在計算機中的應用,實際上在統計學學中就是百分位數
的概念。
百分位數:如果將一組數據從小到大排序,並計算相應的累計百分位,則某一百分位所對應數據的值就稱爲這一百分位的百分位數。可表示爲:一組n個觀測值按數值大小排列。如,處於p%位置的值稱第p百分位數。
也就是說,TP50 其實就是 50百分位數,TP999 就是 99.9百分位數。百分位數計算的結果是一個具體值,計算公式如下:
假設存在數組(下標從 0 開始) a
,百分位數爲:p
,將數組其升序排序後,那麼:
其中 爲結果整數部分, 爲結果小數部分。
計算最終結果爲:
舉個例子:存在數組:[1, 2, 3, 4, 5, 6, 6, 6, 6, 7, 8, 9],已經保證升序排序了,求90百分位數,那麼:
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ (a.length - 1)…
計算最終結果爲:
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ res &= (1 - 0.…
也就是說,這組數據的90百分位數爲 7.9,即 TP90 = 7.9。
PS:以上公式實際上就是 Excel 的
PERCENTILE
函數的實現。