基于一段独立于CPU性能的代码?

ura*_*ray 4 c++ performance benchmarking measurement

我的目标是:我想测试一段代码(或函数)性能,就像我在单元测试中测试该函数的正确性一样,假设该基准测试过程的输出是"函数性能指标"这是"便携式的"

我的问题是:我们通常使用计时器对代码进行基准测试,以计算执行该代码期间的已用时间.并且该方法取决于硬件或操作系统或其他东西.

我的问题是:有没有一种方法可以获得一个独立于主机性能的"功能性能指标"(CPU/OS /等等),或者如果不是"独立",可以说它与某些人"相对"固定价值.因此,"功能性能指标"的价值在任何平台或硬件性能上仍然有效.

例如:可以测量FPI值

  • 执行单个调用所需的算术指令数
  • 浮点值与基准函数相比,例如函数B的评级指数为1.345(这是性能比基准函数慢1.345倍)
  • 或其他价值.

请注意,FPI值不需要在科学上正确,准确或准确,我只需要一个值来粗略地概述该功能性能与使用相同方法测试的其他功能相比较.

Wil*_*ean 5

我认为你在这里寻找不可能的东西,因为现代计算机的性能是CPU,缓存,内存控制器,内存等的复杂混合.

因此,一个(假设的)计算机系统可能会奖励使用巨大的查找表来简化算法,因此处理的cpu指令非常少.虽然另一个系统相对于CPU内核可能具有更慢的内存,但是一个执行大量处理但触及非常少的内存的算法将受到青睐.

因此,这两种算法的单一"品质因数"甚至无法表达哪种算法在所有系统中都更好,更不用说它有多好了.