Gal*_*len 12 java linux memory operating-system jvm
让我们说金钱不是限制因素,我想写一个在一台强大的机器上运行的Java程序.
目标是尽可能快地运行 Java程序,而无需交换或转到磁盘上.
假设这台电脑有:
在JVM中运行的Java程序的单个实例是否可以利用这么多RAM和处理器?
是否存在可能限制使用和效率的实际考虑因素?
谢谢,盖伦
单个实例可以尝试访问所有内存,但NUMA区域意味着诸如GC之类的内容会严重访问另一个区域中的内存.这变得越来越快,JVM有一些NUMA支持,但如果你想要可扩展性,它需要改进.即使如此,您也可以获得256 MB的堆并使用700个本机/直接内存而不会出现此问题.;)
如果你有大量内存,最大的限制是数组,集合和ByteBuffer(用于内存映射文件)都限制在20亿的大小.(2 ^ 31-1)
您可以使用自定义集合解决这些问题,但Java应该支持IMHO.
顺便说一句:您可以购买带有1 TB内存的Dell R910和带有Ubuntu的24核/ 48线程,价格为40,000英镑.
BTW:我只有大约40 GB的JVM经验.
| 归档时间: |
|
| 查看次数: |
2390 次 |
| 最近记录: |