
分析了当前流行的几家不同公司的不同JVM版本的最大内存,结果e69da5e887aa3233363533331如下:该公司的JVM版本(Mega)客户端的最大内存最大服务器(Mega)serverSUN1.5.x 1492 1520SUN1.5.5(Linux)2634 2660SUN1.4.2 1564 1564SUN1.4.2(Linux)1900 1260IBM1.4.2(Linux)2047 N / ABEA JRockit1.5(U3)1909 1902除非另有说明,否则JVM版本均在Windows操作系统下运行。此表想说明一下,如果您的计算机内存太多,则只能运行为了提供更多的机器利用率,例如运行Tomcat,您可以安装更多的Tomcat和群集等。根据官方声明,堆和非堆内存:“ Java虚拟机有一个堆。堆是运行时。数据区域,所有类实例和数组的内存均从此处分配,当Java虚拟机运行时将创建堆ine开始。”“ JVM中堆外部的内存称为非堆内存(Non -heap memory)”。

可以看出,JVM主要管理两种类型的内存:堆和非堆。简而言之,堆是Java代码可访问的内存,保留给开发人员使用。非堆保留供JVM自己使用,因此方法区域,JVM的内部处理或优化所需的内存(例如JIT编译代码Cache),每个类结构(例如运行时常量池,字段和方法数据),方法和构造方法代码都位于非堆存储器中。堆内存分配JVM的初始分配内存由-Xms指定,默认值为物理内存的1/64;默认值为物理内存的1/64。 JVM分配的最大内存由-Xmx指定,默认值为物理内存的1/4。当默认的可用堆内存小于40%时,JVM将增加堆,直到最大限制为-Xmx为止;当可用堆内存大于70%时,JVM将减少堆,直到最小限制为-Xms。因此,服务器通常将-Xms和-Xmx设置为相等,以避免在每个GC之后调整堆大小。非堆内存分配JVM使用-XX:PermSize设置非堆内存的初始值,默认值为物理内存的1/64;默认值为1。 XX:MaxPermSize设置最大非堆内存大小,默认值为物理内存的1/4。 JVM内存限制(最大)首先,JVM内存被限制为实际的最大物理内存(废话!哈哈),假设物理内存是无限的,则最大JVM内存与操作系统有很大关系。简而言之,尽管32位处理器具有4GB的可控内存空间,但特定的操作系统会给出一个限制,该限制通常为2GB-3GB(Windows系统下通常为1.5G-2G,Linux系统下为2G) -3G),并且对64位以上的处理器没有任何限制。因此,有多种原因导致无法通过设置VM参数来启动程序:1)参数中的-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize ;2)-Xmx的值和-XX:MaxPermSize的总和超出JVM内存的最大限制,例如当前操作系统的最大内存限制或实际物理内存,等等。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-331917-1.html
美国这么无赖那么咱们就应该更加坚定的造岛