首页 > 编程知识 正文

tp任务打不过怎么办,tp怎么做

时间:2023-05-06 08:13:02 阅读:12625 作者:4388

前言在性能测试中,多选择TP90、TP95或TP99等水位线作为性能指标。 首先,说明TP90、TP95、TP99的意思。

TP90、top percent 90 (即90% )的数据满足一定条件;

TP95、top percent 95,即95%的数据满足一定条件;

TP99、top percent 99,即99%的数据满足一定条件;

在这里,我们之所以说那个“满足一定条件”,是因为在计算的时候,既可以向前计算,也可以向后计算。 例如:

1,2,3,…,98,99,100

如上所示,这是从1到100的数列。 如果想计算那个TP99的值,那个方法就是用数列中数值的总个数乘以99%。 即,100 * 99%=99。 很明显,这个数列有两个满足这99个概念的数值:

2 )即数列99%的数值均在299以上。 也就是说,数列99%的数值都在99以下。 因此,TP90、TP95或TP99等水位线有两种含义。 具体选择哪一个,可以根据需求自己选择。

计算水位线的值(如计算方法TP90、TP95或TP99 )时,假定必须保存所有计算值。 那么,应该使用什么样的数据结构来保存这一系列的值呢? 数组? 还是名单? 实际上,无论选择哪个数据结构,都不能假设长度无限大。 内存空间是有限的,数据结构也有理论上的最大值,但存储的值数量可能是无限的。 因此,需要利用有限长度的数据结构来存储更多的数值。 其中,数据结构选择数组,并以计算耗时的水位线(如TP90、TP95或TP99 )为例。

双精度[ ] scale=new double [ 2400 ]

int [ ] count container=new int [ 2400 ]

如上所示,我们创建了两个相同长度的数组。 其中

SCALE数组,包含表示相应耗时值的耗时占位符;

一个countContainer数组,包含需要时间的值的出现次数。 与SCALE序列一一对应

例如,如果SCALE[1024]的值为1025,countContainer[1024]的值为2050,则时间为1025的值为2050次。

因为虽然费时的值无限大,但我们不能囊括其中所有的值。 更现实地说,费时间的值大部分集中在某个地区。 因此,只需列出常用数值并使用步长进行控制即可。 具体方法如下。

SCALE数组索引0 ~ 999、内存1 ~ 1000、步骤1

SCALE数组索引1000 ~ 1899、存储器1010 ~ 10000、步骤10

SCALE数组索引1900 ~ 2399、存储器10100 ~ 60000、步骤100

计数容器数组索引0到0 ~ 2399全部初始化为0

其中,最大存储时间值为60000,表示60000毫秒或1分钟。

在记录需要时间t的情况下,假设t=1000,

如果通过计算发现在SCALE数组中具有匹配的时隙比特且SCALE[999]=1000,则相应的时隙比特的索引值为999;

在计数容器数组中,将计数容器[ 999 ]的值累计为1

循环步骤1和步骤2

如果要计算TP99的值,请停止步骤3,获取总记录数sum (计数容器数组中所有值的累加),然后执行以下操作:

计算TP99的水位线,假设sum * 99%=waterline99

从countContainer[0]开始,从前到后累加数组的值。 或者,从countContainer[2399]开始,从后向前累加数组的值。

计数容器[0]计数容器[1]…如果计数容器[ target ]=waterline 99,则记录target索引

如果带target匹配SCALE数组中的相应槽位,则SCALE[target]为TP99的值

至此,TP99的计算完成。 此外,可以进行TP90、TP95、甚至TP50等同样的计算。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。