gpt4 book ai didi

java - Intel i7 vs i5 使用 java 多线程

转载 作者:行者123 更新时间:2023-11-30 11:03:03 26 4
gpt4 key购买 nike

我正在开发一个基于网络的应用程序。

我编写代码的计算机有 4 核 Intel i5 4440 3.10 GHz 处理器。

我部署应用程序的计算机有 8 核 Intel i7 4790K 4.00 GHz 处理器。

其中一项需要计算的任务非常繁重,所以我决定使用java执行器框架。

我有这个:

ExecutorService executorService = Executors.newFixedThreadPool(8);

然后我一次添加 30 个任务。

在我的开发机器上,结果是在 3 秒 内计算的(以前是 20 秒。 当我只使用一个线程时),而在服务器机器上它得到了在 16 秒 内计算(这与代码仅使用一个线程时的情况相同)。

正如您所猜到的,我很困惑,不知道为什么在服务器计算机上它的计算速度如此之慢。

有谁知道为什么更快的处理器不能从多线程算法中获益?

最佳答案

如果没有更多证据,很难猜测根本原因。你能

  • 配置服务器机器上运行的应用程序?
  • JConsole连接到服务器机器并查看线程信息

我的猜测是服务器负载很重(可能来自其他应用程序或后台线程?)。也许您的服务器用户/java 应用程序只允许使用核心?

我会先使用 top(在 linux 上)或任务管理器(windows)来查明运行应用程序时服务器是否处于负载状态。分析/JMX 监控会增加开销,但您将能够找出实际使用了多少线程。

最后的注意事项 - 服务器是否使用与开发相同的架构(32/64 位)、操作系统和主要/次要 Java 版本?

关于java - Intel i7 vs i5 使用 java 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30549377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com