如何以跨平台的方式在 C/C++ 中测试计算机的实际一般性能

How to test a computer real general performance within C/C++ in a cross platform manner?

本文关键字:计算机 测试 性能 跨平台 方式 C++      更新时间:2023-10-16

我想要一种方法,以跨平台的方式测试计算机在C++内的真实"整体"性能

我考虑运行一些简单的测试,这些测试通常用于基准测试套件软件,但我发现的所有基准(软件(套件要么是闭源的,要么不是跨平台的。因此,我是否在寻求建议/指导,首选哪种算法?是否有任何已经免费的独立库,我已经可以在没有太多工作的情况下使用?任何帮助都值得赞赏。

我正在考虑测试:

  • 中央处理器/内存速度
  • 显卡速度
  • 磁盘速度
  • 并行执行速度

我一直在想,复制 Google V8 基准测试的 JavaScript 测试并在我已经嵌入的 JavaScript V8 引擎中运行它们是否是个好主意:http://v8.googlecode.com/svn/data/benchmarks/v3/run.html

我有一些想法来做一些简单的磁盘复制,数据压缩/解压缩,阶乘素数。对于视频卡的性能,我可以简单地使用SFML/OpenGL并做一些GPU密集型的事情。但是做所有这些事情对我来说应该需要一些时间,甚至从一开始就可能不是一件好事,因此问题:

如何以跨平台的方式测试计算机在 C/C++ 中的真实一般性能?

如果您有关于我可能想要使用的良好算法的提示,请告诉我,它只会有所帮助。

提前感谢!

:注我可以检查可用的硬件,但我相信实际测量计算机性能的最佳方法是对其进行测试。

"真正的一般性能"最好通过在计算机上运行实际应用程序并测量其性能来测试。这就是为什么3D基准测试包括尽可能类似于"真实"游戏的"真实"3D场景。内存和CPU速度也是如此---最重要的是真正的内存和CPU密集型应用程序如何在计算机上运行。很难用一个小程序模仿一套真正的数百万行应用程序的操作指纹。

我宁愿收集一些(开源(真实程序,并找到一种自动运行它们以评估性能的方法。例如,以 GNU C 编译器运行它来编译一个大应用程序;采用任何开源加速 3D 游戏(是的,它们存在(,并可能对其进行修补,以便它运行特定数量的帧等。为了提高硬盘速度,请使用直接在硬盘上构建索引的开源全文索引工具,或者使用开源数据库并执行大量插入和删除等。然后基于实际应用程序构建测试组合,然后从中构建性能指数。