gpt4 book ai didi

java - JVM内存和CPU使用的实际限制?

转载 作者:IT王子 更新时间:2023-10-28 23:31:47 28 4
gpt4 key购买 nike

假设金钱不是一个限制因素,我想编写一个在一台强大的机器上运行的 Java 程序。

我们的目标是让 Java 程序尽可能快地运行,而无需交换或转到磁盘

假设这台电脑有:

  • 1 TB RAM(64 个 16GB DIMM)
  • 64 个处理器内核(8 个 8 核处理器)
  • 运行 64 位 Ubuntu

在 JVM 中运行的 Java 程序的单个实例能否利用这么多 RAM 和处理器?

是否有任何实际考虑可能会限制使用和效率?

  • 操作系统进程(内存和线程)限制?
  • JVM 内存/堆限制?
  • JVM 线程限制?

谢谢,盖伦

最佳答案

单个实例可以尝试访问所有内存,但是 NUMA 区域意味着诸如 GC 之类的事情在访问另一个区域中的内存时表现不佳。这越来越快,并且 JVM 有一些 NUMA 支持,但如果你想要可扩展性,它需要改进。即使这样,您也可以获得 256 MB 的堆并使用 700 个 native /直接内存而不会出现此问题。 ;)

如果您有大量内存,最大的限制是数组、集合和 ByteBuffer(用于内存映射文件)的大小都限制为 20 亿。 (2^31-1)

您可以使用自定义集合解决这些问题,但它确实是 Java 应该支持恕我直言。

顺便说一句:您可以花 4 万英镑购买配备 1 TB 内存和 24 核/48 线程的戴尔 R910。

顺便说一句:我只使用过 40 GB 的 JVM。

关于java - JVM内存和CPU使用的实际限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667344/

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