Performance 为什么在衡量应用程序性能时平均值如此流行

Performance 为什么在衡量应用程序性能时平均值如此流行,performance,statistics,theory,Performance,Statistics,Theory,在测量应用程序性能(例如响应时间)时,很容易遇到平均值(mean)ab,httpref和许多其他实用程序正在报告平均值和标准偏差。但从理论上看,这对我来说没有多大意义。这就是原因 均值很好地描述了对称分布的总体,因为在对称分布的情况下,均值等于总体模式和期望值。但响应时间的分布并不对称。它们更像指数。在这种情况下,平均数告诉我们什么 使用百分位值更方便,它告诉我们在百分之多少的响应中,我们可以承受多少响应时间 我遗漏了什么吗?或者说,仅仅因为计算起来很简单,我的意思就很流行吗?是的,你遗漏了什么

在测量应用程序性能(例如响应时间)时,很容易遇到平均值(mean)
ab
httpref
和许多其他实用程序正在报告平均值和标准偏差。但从理论上看,这对我来说没有多大意义。这就是原因

均值很好地描述了对称分布的总体,因为在对称分布的情况下,均值等于总体模式和期望值。但响应时间的分布并不对称。它们更像指数。在这种情况下,平均数告诉我们什么

使用百分位值更方便,它告诉我们在百分之多少的响应中,我们可以承受多少响应时间


我遗漏了什么吗?或者说,仅仅因为计算起来很简单,我的意思就很流行吗?

是的,你遗漏了什么

描述性统计的全部要点是呈现一些数字来描述(或表示、建模或…)大量数字。它们有助于理解大型数据集,从数据中提取信息,对数据集进行近似比较,这些数据集的精确比较非常大,并且令人困惑于人类思维的局限性

但是没有一个单一的描述性统计总是适合所有的目的,也没有人告诉你必须、应该或应该使用平均数。如果它不适合你的目的,就用别的东西


碰巧你写得很不对,它们更像是指数。在这种情况下,平均数告诉我们什么。对于速率参数为
lambda
的指数分布,平均值就是
1/lambda
,所以平均值告诉了你指数分布的一切。

我不是统计学专家,但我相信平均值被使用得太多了,因为这些值有助于衡量指数分布的可伸缩性系统

你需要首先考虑你的平均值,以了解你的系统在特定的工作量和需要预测的情况下需要怎样做,你通常对离群点不感兴趣,至少在一开始不太感兴趣。


当然,您需要查看您的最小值和峰值,以了解您的系统何时会出现瓶颈,但正如我所说的,平均值向您显示了一种正确且可预测的行为。

各种工具的功能不一定来自有意义的东西,而是来自用户的期望

你完全正确,分布是非负的,并且严重倾斜,百分位数会提供更多信息


或者,更像对数正态分布或卡方分布的分布会更好一些。

你确定即使他们称之为均值,他们也不会计算期望值吗?因为对性能的外部随机影响会使分布趋于正态,通常报告平均处理时间,但只给出相同的输入参数集。对不同处理时间的请求求平均值基本上是没有意义的。这就是为什么有固定输入的标准化基准。@Razvan
ab
standart输出表示:min,mean,[+/-sd],median,max。所以我认为这只是平均值。@hristoilev
httperf
例如可以将会话日志重放到被测系统。会话可以包含不同的请求。即使如此,响应时间也不会是正态(高斯)分布的。系统不能比它更快地工作,只能更慢。所以响应时间分布通常是长尾分布,但这并不意味着响应时间是严格的指数分布。我的意思是,通常这些分布有“长尾”。它们通常也可能是双向和多模式的。但我明白你关于描述性统计的观点,谢谢。问题是,在性能分析中,没有实际结果可以建立在平均值的基础上。但是,平均值仍然很流行。我不明白你的意思。关于系统的可伸缩性,平均值是多少?我想吞吐量是衡量可伸缩性的更合适的指标。