岁月如哥
人生非梦
posts - 50,comments - 144,trackbacks - 0
今天分析了当前比较流行的几个不同公司不同版本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并做集群,依此类推。



≡≡≡ 网友评论 ≡≡≡
东子 网友说:
Windows下的最大内存应该跟NT内核对地址空间的保留也有关系, 好像默认情况下NT内核要占用高2G的地址空间, 所以应用程序撑死能获得的内存不会超过2G; 记得有一个参数可以让NT只占1G内存, 这样应用程序就有3G地址空间可用, 相应环境下JVM能允许的最大内存可能也会升高.

at 05-10-06 00:04
purpureleaf 网友说:
windows的每个应用(不是寻址)的寻址空间一般是2g或者3g,取决于一个参数。但是只要使用一组特定的函数分配内存,每个应用的寻址空间可以远远超过4g

jdk可能是设置不了那个大的内存,但那不是windows造成的,是jdk造成的,在linux上一样设置不了。看来做java的朋友对windows还是不熟
posted on 2008-09-21 15:01 岁月如歌 阅读(2156) 评论(0)  编辑  收藏 所属分类: java

只有注册用户登录后才能发表评论。


网站导航: