我有一个关于多核环境中程序性能的非常基本的问题。
如果我运行一个简单的 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/