0

我想要一种以跨平台方式在 C++ 中测试计算机真正“整体”性能的方法。

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

我考虑测试:

  • CPU/内存速度
  • 显卡速度
  • 磁盘速度
  • 并行执行速度

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

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

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

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

提前致谢!

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

4

1 回答 1

1

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

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

于 2012-05-10T05:31:28.517 回答