【问题标题】:Do performance stats like Geekbench represent general multi-tasking performance?像 Geekbench 这样的性能统计数据是否代表一般的多任务处理性能?
【发布时间】:2011-11-12 21:30:42
【问题描述】:

我试图比较 i7 双核 2.7Ghz 与 i7 四核 2.0Ghz 在多任务环境中的性能。四核得分约为 9000,而双核得分约为 7500(对于 Geekbench)。同时,Geekbench 明确指出测试显示了所有内核的全部性能潜力。然而,在现实世界的日常使用中,我要运行的应用程序几乎都不是多线程的(Ruby 运行时、Java IDE、Mac 上的 Windows VM、应用服务器)。

这台机器将作为 Web 开发机器服务。在这个用例中,就响应时间而言,哪个 CPU 最“敏捷”?

【问题讨论】:

  • 真的吗?!?!?! Ruby 运行时、Java IDE、Windows VM 和应用服务器不是多线程的?
  • Ruby 当然不是。 Java,取决于实现。
  • Java 运行时会产生多个线程,即使您只有一个主函数,更不用说整个 IDE...我不熟悉 Ruby 运行时,但我敢打赌它也有多个线程。但是,即使它们都是单线程的,如果您在自己的内核上运行每个应用程序,您仍然可以从多个内核中受益。
  • Lirik,感谢您的回答。你可能是对的。但是,让我进一步询问。虽然每个进程都可以在自己的核心上运行,但大多数应用程序在没有被积极使用(即在后台)时处于空闲状态(或几乎不使用 cpu 周期),或者?
  • @Jason,是的,我认为开发机器通常处于闲置状态,等待程序员编写更多代码 :)

标签: multithreading performance benchmarking


【解决方案1】:

只有当基准测试非常接近您的典型工作负载时,基准测试的结果才具有实际意义。

您应该考虑您的典型开发环境是否经常需要并行性。例如,如果我开发 C/C++/Java 应用程序,通常会更改头文件(或 Java 源代码)以导致重新编译其他几个文件并重新链接一些二进制文件 - 这是高度并行的工作负载和多核CPU 可能被证明是有利的。

另一方面,如果我要更改一些 Python 或 Javascript 源,我怀疑在尝试执行和测试更改时会创建任何并行工作负载。

不过,这些都是理论上的考虑。

我不认为机器的速度是任何开发工作的瓶颈。人类是。

【讨论】:

  • 在我的例子中,诀窍是确定较低时钟频率的四核 (2.0Ghz) 是否会胜过时钟频率较高的双核 (2.7Ghz)。不容易,不幸的是。我将主要使用动态类型语言进行编程,因此不需要编译。
  • 另外,我关心的主要是多任务处理会受到怎样的影响,而不是单个应用会受到怎样的影响。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多