天分析了当前比较流行的几个不同公司不同版本JVM的最大内存,得出来的结果如下:
公司 | JVM版本 | 最大内存(兆)client | 最大内存(兆)server |
SUN | 1.5.x | 1492 | 1520 |
SUN | 1.5.5(Linux) | 2634 | 2660 |
SUN | 1.4.2 | 1564 | 1564 |
SUN | 1.4.2(Linux) | 1900 | 1260 |
IBM | 1.4.2(Linux) | 2047 | N/A |
BEA | JRockit 1.5 (U3) | 1909 | 1902 |
除非特别说明,否则JVM版本都运行在Windows操作系统下
附:如何获得JVM的最大可用内存
在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。
实际发现版本上有细微差别的JDK最大容许内存值都不尽相同,因此在实际的应用中还是要自己试验一下看到底内存能达到什么样的值。
通过这个表想说明的是,如果你的机器的内存太多的话,只能通过多运行几个实例来提供机器的利用率了,例如跑Tomcat,你可以多装几个 Tomcat并做集群,依此类推。