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

标签 c++ algorithm performance-testing

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

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

我正在考虑测试:

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

我一直在考虑是否复制 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 游戏(是的,它们存在)并可能对其进行修补,以便它运行特定数量的帧等。对于硬盘速度,采用构建索引的开源全文索引工具直接在硬盘或开源数据库上执行大量插入和删除等操作。然后根据实际应用构建测试组合,然后从中构建性能指标。

关于c++ - 如何以跨平台的方式在 C/C++ 中测试计算机的真实一般性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10520878/

相关文章:

c++ - c表达式和c++表达式的区别

algorithm - 动态规划的复杂组合条件

algorithm - 证明这个递归斐波那契实现运行时间为 O(2^n)?

algorithm - B-tree 比 AVL 或 Red Black-Tree 更快?

c++ - 返回 std::string 的函数在没有 return 语句的情况下崩溃,这与返回 int 且没有 return 语句的函数不同

c++ - 如何检查应用程序在 OS X 下的位置?

c++ - 目标文件 (.o) 与单个文件库的头文件?

java - JMeter 清除 JDBC 响应数据

java - 即使对于高堆大小分配,Jmeter 也会测试内存不足错误

java - Avro 与 Protobuf 性能对比