当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机二级辅导:Java虚拟机支持的最大内存限制
发布时间:2010/3/13 9:11:22 来源:城市学习网 编辑:MOON
  没想到第一个实验的程序,跑了几个小时,就遇到了Out of Memory Exception了。看看自己的虚拟机设置,我设置的是-Xms512M -Xmx1024M。想都没想,直接改成-Xms512M -Xmx2048M,结果直接就Could not reserve enough space for object heap。程序都起不来了。这才发现原来最大内存还有限制。上网搜了一下,发现很多讨论这个问题的文章。最终在BEA的DEV2DEV发现了最有用的一篇http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID= 35704&start=0&tstart=0
  这里的版主YuLimin 做了测试,得出结论:
  公司 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
  我现在用的是JDK1.6. 0_05,测试了一下。在Client状态下最大是,我的JDK不认-Server参数,测试不了Server状态。估计差不多。
  SUN 1.6.0 1442 N/a
  看样子用Java想用大内存也是不可能的了。而且一般的说法是内存太大了,垃圾收集的时间就会长。这也可以理解,一般是内存不够用了才收集的,扫描2G内存比1G当然要慢多了,而且内存对象多了,估计关系是指数上升的。
  下面附上YuLimin的测试方法和测试记录。
  测试方法:在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。
  测试记录:
  我在Windows 2000 ADS上面测试内存使用的结果如下
  SUN的1.2.2、1.3.1、1.4.2、1.5.0、IBM1.4.2、BEA JRockit 1.4.2
  F:“JDK“1.2.2“binjava -Xmx700000255M -version
  java version “1.2.2″
  Classic VM (build JDK-1.2.2_017, native threads, symcjit)
  F:“JDK“1.2.2“binjava -Xmx700000256M -version
  Bad max heap size: -Xmx700000256M
  Could not create the Java virtual machine.
  =
  F:“JDK“1.3.1“binjava -version
  java version “1.3.1_18″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_18-b01)
  Java HotSpot(TM) Client VM (build 1.3.1_18-b01, mixed mode)
  F:“JDK“1.3.1“binREM If present, the option to select the VM must be first.
  F:“JDK“1.3.1“binREM The default VM is -hotspot.
  F:“JDK“1.3.1“binjava -hotspot -Xmx1554M -version
  java version “1.3.1_18″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_18-b01)
  Java HotSpot(TM) Client VM (build 1.3.1_18-b01, mixed mode)
  F:“JDK“1.3.1“binjava -hotspot -Xmx1555M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  F:“JDK“1.3.1“binjava -server -Xmx1522M -version
  java version “1.3.1_18″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_18-b01)
  Java HotSpot(TM) Server VM (build 1.3.1_18-b01, mixed mode)
  F:“JDK“1.3.1“binjava -server -Xmx1523M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  F:“JDK“1.3.1“binjava -classic -Xmx2047M -version
  java version “1.3.1_18″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_18-b01)
  Classic VM (build 1.3.1_18-b01, native threads, nojit)
  F:“JDK“1.3.1“binjava -classic -Xmx2048M -version
  Bad max heap size: -Xmx2048M
  Could not create the Java virtual machine.
  =
  F:“JDK“1.4.2“binjava -version
  java version “1.4.2_12″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03)
  Java HotSpot(TM) Client VM (build 1.4.2_12-b03, mixed mode)
  F:“JDK“1.4.2“binREM The default VM is client.
  F:“JDK“1.4.2“binjava -client -Xmx1308M -version
  java version “1.4.2_12″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03)
  Java HotSpot(TM) Client VM (build 1.4.2_12-b03, mixed mode)
  F:“JDK“1.4.2“binjava -client -Xmx1309M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  F:“JDK“1.4.2“binjava -server -Xmx1308M -version
  java version “1.4.2_12″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03)
  Java HotSpot(TM) Server VM (build 1.4.2_12-b03, mixed mode)
  F:“JDK“1.4.2“binjava -server -Xmx1309M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  F:“JDK“1.4.2“binREM -hotspot is a synonym for the “client” VM [deprecated]
  F:“JDK“1.4.2“binjava -hotspot -Xmx1308M -version
  java version “1.4.2_12″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03)
  Java HotSpot(TM) Client VM (build 1.4.2_12-b03, mixed mode)
  F:“JDK“1.4.2“binjava -hotspot -Xmx1309M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  =
  F:“JDK“1.5.0“binjava -version
  java version “1.5.0_07″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
  Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode, sharing)
  F:“JDK“1.5.0“binjava -client -Xmx1492M -version
  java version “1.5.0_07″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
  Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode)
  F:“JDK“1.5.0“binjava -client -Xmx1493M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  Could not create the Java virtual machine.
  F:“JDK“1.5.0“binjava -server -Xmx1504M -version
  java version “1.5.0_07″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
  Java HotSpot(TM) Server VM (build 1.5.0_07-b03, mixed mode)
  F:“JDK“1.5.0“binjava -server -Xmx1505M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  Could not create the Java virtual machine.
  F:“JDK“1.5.0“binREM -hotspot is a synonym for the “client” VM [deprecated]
  F:“JDK“1.5.0“binjava -hotspot -Xmx1492M -version
  java version “1.5.0_07″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
  Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode)
  F:“JDK“1.5.0“binjava -hotspot -Xmx1493M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  Could not create the Java virtual machine.
  =
  F:“JDK“IBM142“binjava -version
  java version “1.4.2″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
  Classic VM (build 1.4.2, J2RE 1.4.2 IBM Windows 32 build cn1420-20040626 (JIT enabled: jitc))
  F:“JDK“IBM142“binREM The default VM is client.
  F:“JDK“IBM142“binjava -Xmx2047M -version
  java version “1.4.2″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)
  Classic VM (build 1.4.2, J2RE 1.4.2 IBM Windows 32 build cn1420-20040626 (JIT enabled: jitc))
  F:“JDK“IBM142“binjava -Xmx2048M -version
  [ Unable to allocate an initial java heap of 2147483648 bytes. ]
  [ **Out of memory, aborting** ]
  [ ]
  [ *** panic: JVMST016: Cannot allocate memory for initial java heap ]
  abnormal program termination
  =
  F:“BEA“JRockit“binjava -version
  java version “1.4.2_05″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
  BEA WebLogic JRockit(TM) 1.4.2_05 JVM R24.4.0-1 (build ari-38120-20041118-1131-win-ia32, Native Threads, GC strategy: parallel)
  F:“BEA“JRockit“binREM The default VM is jrockit.
  F:“BEA“JRockit“binjava -Xmx1617M -version
  java version “1.4.2_05″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
  BEA WebLogic JRockit(TM) 1.4.2_05 JVM R24.4.0-1 (build ari-38120-20041118-1131-win-ia32, Native Threads, GC strategy: parallel)
  F:“BEA“JRockit“binjava -Xmx1618M -version
  Unable to acquire some virtual address space - reduced from 1656832 to 1640260 KB!
  java version “1.4.2_05″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
  BEA WebLogic JRockit(TM) 1.4.2_05 JVM R24.4.0-1 (build ari-38120-20041118-1131-win-ia32, Native Threads, GC strategy: parallel)
  F:“BEA“JRockit“binREM -jrockit to select the “jrockit” VM
  F:“BEA“JRockit“binjava -jrockit -Xmx1617M -version
  java version “1.4.2_05″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
  BEA WebLogic JRockit(TM) 1.4.2_05 JVM R24.4.0-1 (build ari-38120-20041118-1131-win-ia32, Native Threads, GC strategy: parallel)
  F:“BEA“JRockit“binjava -jrockit -Xmx1618M -version
  Unable to acquire some virtual address space - reduced from 1656832 to 1640260 KB!
  java version “1.4.2_05″
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
  BEA WebLogic JRockit(TM) 1.4.2_05 JVM R24.4.0-1 (build ari-38120-20041118-1131-win-ia32, Native Threads, GC strategy: parallel)
  我的测试记录:
  C:“java -client -Xmx1441M -version
  java version “1.6.0_05″
  Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
  Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode)
  C:“java -client -Xmx1442M -version
  java version “1.6.0_05″
  Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
  Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode)
  C:“java -client -Xmx1443M -version
  Error occurred during initialization of VM
  Could not reserve enough space for object heap
  Could not create the Java virtual machine.
  C:“java -server -Xmx1443M -version
  Error: no `server’ JVM at `C:“Program Files“Java“jre1.6.0_05“bin“server“jvm.dll’.
  :
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved