java - java程序在多核机器上如何提高性能

标签 java parallel-processing multicore

我有一个关于多核环境中程序性能的非常基本的问题。

如果我运行一个简单的 Java 程序,例如计算数字的平方根或在多核计算机中查找第 n 个斐波那契数列,性能会如何提高?

如果在单核上运行需要x毫秒,是否意味着在8核机器上需要x/8毫秒? (从技术上讲,我认为这是不正确的)

有没有办法计算多核机器上的性能改进?

最佳答案

If it takes x milliseconds to run on a single core, does it mean it will take x/8 milliseconds on a 8 core machine? (Technically I don't see this is correct)

你是对的。

只有当您的程序利用机器的所有计算单元(核心)时,您才会看到性能提升。

现在,如果您的代码是可并行的,并且您对其进行编程,那么您可能会看到性能的提高。 Java 为此提供了大量解决方案:

  • 执行者
  • fork-join 框架;
  • (并行)

但是,核心条件仍然存在:您的代码必须可并行化,首先...

关于java - java程序在多核机器上如何提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934480/

相关文章:

java - 从 Java 程序将数据插入数据库时​​出错

java - 并行阶乘计算直到给定数字的所有元素

r - sapply 的并行版本

python - 如何在 python + linux 中监听端口并行

java - 分析java堆栈跟踪,正在运行哪些线程

c - 如何分析线程负载平衡?

windows - 并行执行shell进程

java - 用于访问 JDK 8 HotSpot JVM 中的字符串池内容的实用程序

JavaDoc:仅记录用户应该使用的框架中的公共(public)方法?

java - 如何通过 Java FX 中的多个事件处理程序执行一项操作?