【发布时间】:2017-11-06 21:18:16
【问题描述】:
我有几个问题,我在网上搜索了以下问题,但更加困惑。
- 我有 java 应用程序在单机上运行,单机 JVM,20 核机,20 GB 内存,20 个 java 线程。 (单机,单JVM,20核,20GB内存,20个java线程)
- 我有 java 应用程序在单台机器上运行,有 20 个 JVM,20 个核心机器,每个 JVM 有 1 GB ram,每个进程有 1 个 JAVA 线程。 (单机,20个JVM,20个核心,20GB内存,20个java线程)
从上面的第1点和第2点来看,哪个更好,为什么
- 应用性能
- 机器的 CPU 利用率
- 如果即使增加线程数也没有完全消耗 CPU,那么在应用程序或机器中做什么才能利用更多 CPU。
- 在这种情况下,上下文切换会更多。
在上面的1和2点中,假设每个线程需要10ms来完成任务,那么在情况1和2中完成所有任务需要多少时间。请解释一下。
我搜索并听说过有关 CPU 利用率的 CPU 密集型和 I/O 密集型应用程序。你能解释一下吗,因为我很困惑。
通常建议线程数等于内核数。如果我的线程数比内核数多,那会产生什么影响。请解释一下。
【问题讨论】:
标签: java performance parallel-processing jvm