如何计算性能测试响应时间的百分比改进

Bra*_*r M 52 optimization time

我该如何计算响应时间的百分比改善.

我得到15306 ms旧代码的响应时间和799 ms更新代码的响应.响应时间的百分比改善是多少?

bgo*_*dst 61

有两种方法可以解释"响应时间的百分比提高".一个是用于计算数据点中从旧值到新值的百分比变化的经典且无处不在的公式,如下所示:

(new - old)/old*100%
Run Code Online (Sandbox Code Playgroud)

所以对于你的情况:

(799 - 15306)/15306*100% = -94.78%
Run Code Online (Sandbox Code Playgroud)

这意味着新值比旧值小94.78%(因为我们谈论响应时间更快).

解释该陈述的第二种方式是采用新值"覆盖"或"达到"的旧值的百分比:

new/old*100%
Run Code Online (Sandbox Code Playgroud)

对于你的情况:

799/15306*100% = 5.22%
Run Code Online (Sandbox Code Playgroud)

这意味着新值仅为旧值的5.22%,对于响应时间,这意味着与旧响应时间相比,仅需要5.22%的响应时间.

使用"改进"一词表示您需要94.78%的值,因为它显示新代码消除("改进")旧响应时间的滞后程度.但是当谈到自然语言时,如果不仔细澄清就很难确定精确的意义.

  • 我只是想让你知道我每次查看这个帖子时都需要知道40ms的小于14400ms.谢谢你这篇精彩的文章. (5认同)
  • 这在概念上很难理解。你的回答做得很好,谢谢。 (2认同)

nCo*_*der 17

实际上,性能是指在相同的时间内可以完成多少工作.

所以公式就是OLD/NEW - 1 在你的情况下你的表现增加了1816%(即你可以在同一时间多做18.16倍)

15306/799 - 1 = 1816%
Run Code Online (Sandbox Code Playgroud)

注意:在你完成1/15360之前,现在是1/799 ......

  • 正确的。它增加了 100%。如果 OLD 为 200ms 和新的 200ms,则性能增量为 0% ;) (2认同)

Bar*_*ris 11

你的代码的运行时间缩短了94.78%/改进/减少了:

(new - old) / old x 100%
(799 - 15306) / 15306 x 100% =~ -94.78% (minus represents decrease)
Run Code Online (Sandbox Code Playgroud)

你的代码快1816%:

(old - new) / new x 100%
(15306 - 799) / 799 x 100% =~ 1816%
Run Code Online (Sandbox Code Playgroud)


Rya*_*ton 9

我认为以上答案受原始问题困扰,即没有很好的整数,并且有3种不同的方法来陈述结果。

假设旧时间是10秒,新时间是5秒。

新时间显然减少了(或减少了)50%

(old-new)/old x 100% = (10-5)/10 x 100% = 50%
Run Code Online (Sandbox Code Playgroud)

但是,当谈到性能提升时,更大的提升显然更好,您不能使用上面的公式。相反,性能提升为100%

(old-new)/new x 100% = (10-5)/5 x 100% = 100%
Run Code Online (Sandbox Code Playgroud)

5秒时间比10秒时间 2倍。换句话说,您过去每次可以执行两次任务(2x)。

old/new = 10/5 = 2.0
Run Code Online (Sandbox Code Playgroud)

现在让我们考虑原始问题

过去是旧时15306 ms,新时是799 ms

时间减少了94.7%

(old-new)/old x 100% = (15306-799)/15306 x 100% = 94.7%
Run Code Online (Sandbox Code Playgroud)

性能提高了1816%

(old-new)/new x 100% = (15306-799)/799 x 100% = 100%
Run Code Online (Sandbox Code Playgroud)

您的新时间快了19倍

old/new = 15306/799 = 19.16
Run Code Online (Sandbox Code Playgroud)


小智 8

几个回答已经正确回答了这个问题,但让我用一些额外的想法和一个实际的例子来扩展这些答案。

百分比改进通常计算为 ((NEW - OLD)/OLD) * 100

让我们用一些实际的例子来思考它:

  • 如果我在目前的工作中赚了 10,000 美元,然后得到一份提供 12,000 美元的新工作,那么这份新工作的薪水将增加 20% ((12000 - 10000)/10000)*100
  • 如果火车 A 以每小时 100 英里的速度行驶,而火车 B 以每小时 150 英里的速度行驶,则火车 B 比火车 A 快 50%。很简单,对吧?

当您尝试使用与您尝试测量的指标具有反比关系的另一个指标来衡量一个指标时,这会变得很棘手。让我解释一下我的意思。

现在让我们使用“到达目的地所花费的时间”再次尝试第二个示例。假设火车 A 需要 3 小时才能到达目的地,火车 B 需要 2 小时才能到达同一目的地。火车 B 比火车 A 快多少百分比?

如果我们使用上面例子中使用的相同公式,我们得到 ((2-3)/3)*100,即 -33%。这只是表明火车 B 到达目的地所需的时间比火车 A 少 33%,但这不是我们想要确定的。对?我们试图用百分比来衡量速度的差异。如果我们稍微改变公式并取绝对值,我们会得到 33%,这似乎是正确的,但实际上并非如此。(我会在一分钟内解释为什么)

那么我们该怎么办?我们需要做的第一件事是将我们手头的指标转换为我们想要衡量的指标。之后,我们应该可以使用相同的公式。在这个例子中,我们试图测量速度的差异。所以让我们首先得到每列火车的速度。火车 A 以每小时 1/3 的距离行驶。火车 B 以每小时 1/2 的距离行驶。速度的百分比差为:((1/2 - 1/3)/1/3) * 100 = ((1/2 - 1/3)*3)*100 = (3/2 - 3/ 3) * 100 = 50%

这恰好与 ((3 - 2)/2) * 100 相同。

简而言之,当我们测量的度量和我们手头的度量具有反比关系时,公式应该是

((旧 - 新)/新) * 100

原来的公式有什么问题?为什么我们不能使用原始公式并得出结论 B 列车仅快 33%?因为它不准确。原始公式总是产生小于 100% 的结果。想象一下,一个航班在 15 分钟内到达同一个目的地?第一个公式表明飞行速度提高了 91.6%,而第二个公式表明飞行速度提高了 1100%(或 11 倍),这更准确。

使用此修改后的公式,原始问题中发布的案例的百分比改进为 ((15306 - 799)/799) * 100 = 1815.6%