首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JVM内存和CPU使用的实际限制?

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

Stack Overflow用户
提问于 2011-07-12 16:03:57
回答 2查看 2.9K关注 0票数 13

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

这样做的目的是使Java程序尽可能快地运行,而不必为任何东西交换或转到磁盘

假设这台计算机有:

内存的

  • 1 TB (64 16 TB)
  • 64处理器核(8 8核
  • 64位Ubuntu

)

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

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

limitations?

  • JVM内存/堆limitations?

  • JVM线程limitations?

  • OS进程(内存和线程)

谢谢你,加伦

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-12 16:10:11

一个实例可以尝试访问所有内存,但是NUMA区域意味着GC之类的东西在另一个区域访问内存时执行得很差。这越来越快,JVM有一些NUMA支持,但是如果您想要可伸缩性,它需要改进。即使如此,您仍可以获得256 MB的堆,并使用700的本机/直接内存,而不会出现此问题。;)

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

您可以使用自定义集合来解决这些问题,但是Java应该支持IMHO。

顺便说一句:你可以买一台有1TB内存的戴尔R910和24个内核/48个Ubuntu线程,用于GB40K。

顺便说一句:我只有40 GB的JVM经验。

票数 8
EN

Stack Overflow用户

发布于 2011-07-12 16:12:44

首先,Java程序本身:设计糟糕的代码不会使用那么多的计算机功能。例如,实现不好的线程可能会使您的性能变慢。

操作系统也是一个限制因素:并不是所有的操作系统都能很好地处理那么多的内存。

我认为JVM可以处理这么多的内存,因为操作系统支持它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6667344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档