我在32位Ubuntu系统上运行矿工服务器,如果我升级到64位什么是我可以给java的最大内存?我希望它具有大约12吉ram,但我不能在32位上做到这一点你可以给java的最大内存?
回答
64位系统可以解决的ram数量实际上没有最大值。您将只能通过计算机的硬件停止。如果你在命令中使用了正确的开关,我不认为java有最大数量的所有RAM。
该限制与您的硬件无关。它直接关系到你的操作系统支持多少虚拟内存(我猜你可以争论与硬件有关,但不像你想的那样)。 – 2012-04-15 01:29:23
这与硬件非常相关 - 从“软件”不是“内存”的意义上说,内存不是“软件”。基于处理器架构和对物理硬件的任何限制,O/S可以使存储器具有一定的地址可寻址性,但所有存储器页迟早要被物理存储器或某种形式的寻呼空间支持。 – 2012-04-15 02:06:41
从Java Tuning白皮书:
对于一个32位的过程模型,该过程的最大虚拟地址大小通常是4 GB,尽管某些操作系统限制这2 GB或3 GB。对于2 GB限制,最大堆大小通常为-Xmx3800m(1600m)),但实际限制取决于应用程序。对于64位过程模型,最大值基本上是无限的。
但事实是,如此巨大的堆内存使用量(12GB)会适得其反。运行很长时间后,应用程序花费在垃圾回收上的时间将会消除可用内存太多的影响。
这取决于。可以对Java进行编码,因此几乎没有垃圾收集,因此它不会让你的生活变得悲惨。 – 2012-04-15 01:32:52
有人在糟糕的一天? Java不分配内存 - 它分配的内存可以是物理内存(RAM ...)或虚拟(调页空间等) – 2012-04-15 01:59:09
Oscar:那么你是不是已经开始对我的答案进行周转和下调投票了?不成熟多少? – 2012-04-15 02:32:43
要说清楚,“硬件”包括分页/交换空间,所以如果你实际需要12GB的内存,只有8GB内存,你需要确保有4GB的备用交换空间,以便Java成功分配额外的内存。
好吧,这个倒退是荒谬的。 实际限制取决于可用的物理内存,调页空间以及用户进程的任何资源限制。它不是“实质上无限的” - 迟早要允许的页面必须分配和支持某些东西。 – 2012-04-15 02:03:14
- 1. 如何设置Redis可以使用的最大内存大小?
- 2. Java -Xmx,系统上的最大内存
- 3. 64位Java的最大内存
- 4. 可以分配给Android应用程序的最大本机内存
- 5. 限制.NET进程可以使用的最大内存量?
- 6. .NET进程可以分配的最大内存
- 7. 我可以分配的最大jvm内存
- 8. SQL Server 2016 Express可以使用的最大内存是多少?
- 9. sbrk,malloc - 可以分配的最大内存
- 10. 可以在Java EE应用程序中使用比最大堆内存
- 11. 获取java内存不足错误?即使我给了JVM足够的初始和最大内存大小
- 12. Java获取大输入流的大小给出内存不足
- 13. 你可以调整GAE的内存缓存超时吗?
- 14. 英镑,我们可以设置最大元素内存?
- 15. 你可以缓存JNIEnv吗?
- 16. 你可以缓存UIViewControllers吗?
- 17. 如何给服务器上物理可用的tomcat最大内存?
- 18. 允许的最大和最小内存
- 19. 你可以给我一个java编程问题
- 20. 我们可以存储的最小和最大数量?
- 21. 你可以存储一个字符串在Java中的int?
- 22. 最大内存redis heroku django
- 23. Redis - 数据大小是否可以大于内存大小?
- 24. 可以分配给rununtildate的runloop的最大值是多少?
- 25. 为什么你可以分配给NotImplemented?
- 26. 你可以在knitr最后评估内联块吗?
- 27. java堆内存大于TOP
- 28. 是否可以动态更改最大Java堆大小?
- 29. 我可以将内存分配给特定的java进程(jms listener进程)吗?
- 30. Java内存使用率保持内最大堆大小不错,但我的系统内存慢慢被吃掉
如果您的堆大小小于32 GB,64位Java运行效率更高,但大多数处理器的理论限制为256 TB(虚拟内存限制)我创建的最大JVM内存大小为8 TB。 – 2012-04-15 07:04:16