应用程序性能的最佳“指示/编号”方法是什么?

4
在旧的(单线程)时代,我们指示测试团队始终报告应用程序的CPU时间而不是实际时间。这样,如果他们说版本1中的一个操作需要5个CPU秒,而在版本2中需要10个CPU秒,那么我们就有了问题。
现在,随着越来越多的多线程,这似乎不再有意义了。可能是应用程序的版本1需要5个CPU秒,版本2需要10个CPU秒,但是如果版本1是单线程的,而版本2使用4个线程(每个线程消耗2.5个CPU秒),那么版本2仍然更快。
另一方面,使用实际时间来比较性能也不可靠,因为它可能会受到许多其他元素的影响(运行其他应用程序,网络拥塞,非常繁忙的数据库服务器,碎片化的磁盘等)。
您认为最好的“数字化”性能的方法是什么? 希望它不是直觉,因为那不是客观的“价值”,可能会导致开发团队和测试团队之间的冲突。

你不能在没有运行其他无关程序的系统中测量挂钟时间吗? - Mike Dunlavey
@Mike,对于长时间运行的操作是这样。但有时测试团队也会报告性能下降,如果某些操作的时间从1秒增加到1.2秒。这几乎无法使用挂钟测量(但在这些情况下,我也对实际性能问题表示怀疑)。 - Patrick
1
我相信您明白我所说的不是挂在墙上的物理塑料电子钟,而是指结束时间减去开始时间。这与试图测量与I/O时间不同的进程CPU时间的事物形成对比,如一些分析器所做的那样。在我看来,后者可能能够满足某些好奇心,但对于定位问题并没有太大帮助。 - Mike Dunlavey
1个回答

1

在进行测量之前,需要定义性能。

是什么呢:

  • 内存消耗?
  • 任务完成时间?
  • 磁盘空间分配?

一旦定义好了,您就可以决定指标了。


好的观点。问题在于测试人员往往会报告任何增加的东西:CPU时间、资源使用、内存等等。需要花时间与测试人员讨论这个问题。谢谢。 - Patrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接