代码之家  ›  专栏  ›  技术社区  ›  Joshua Fox

IBM JRE 1.5不会使用请求的1.5G内存启动

  •  1
  • Joshua Fox  · 技术社区  · 15 年前

    Windows上的IBM JRE 5.0,如果给定 -XMX1536米 在具有2GB内存的笔记本电脑上,拒绝启动:下面是错误消息。与 -xmx1000米 它确实开始了。

    而且,开始的时候 -XMX1536米 在其他服务器,甚至笔记本电脑上,我认为不仅仅是内存不足。

    另外,当从Eclipse内部启动(尽管在本例中使用IBM 5 JDK中的JRE)并使用相同的内存参数时,它运行良好。

    知道这里发生了什么吗?

    库j9gc23(2)的JVMJ9VM015W初始化错误:未能实例化堆。要求15.36亿 无法创建Java虚拟机


    编辑:

    有人知道 "3GB switch" 如果它与此相关(除了明显的事实,即这是一个内存限制问题)。如何判断它是否已启用,以及打开它的最直接方法是什么?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Buhake Sindi Tesnep    15 年前

    根据IBM DeveloperWorks:

    原因
    系统没有必要的资源来满足 需要的最大默认堆值 运行JVM。

    为了解决这个问题

    解决问题
    如果你收到 启动时出现此错误消息 JVM,免费 通过停止其他应用程序来存储 可能是在消耗系统 资源。

    您的JVM没有足够的内存资源来创建最大的堆空间量为1536 MB。只要确保你有足够的内存来容纳它。

    另外,我相信在Windows中,最大堆空间是1000 MB?我不确定这是否可靠,但在Linux/AIX中,任何大于1GB的Xmx都可以正常工作。

        2
  •  1
  •   Jim Garrison    15 年前

    JVM要求能够将其内存分配为单个连续块。如果你在32位系统上,可用的最大值大约是1280M。要获得更多信息,必须在64位操作系统上运行64位JVM。

    重新启动后立即启动JVM可能可以获得更多信息。

    至于在其他系统上启动OK,是32位还是64位?

        3
  •  1
  •   Chris K    15 年前

    你在Windows平台上保证的最大值是1450 MB。有时Windows/Java.exe会将dll映射到1.5-2.0GB范围内的地址。即使您使用/3GB技巧(或者您有一个支持它的操作系统),这也不会改变。您必须手动调整dll的位置,以使它们更靠近2GB(或3GB边界)。这真是让人头疼,我以前也这么做过,但不管有没有/3GB的组合,在32位Windows上,我所能得到的最好成绩是1.8G。

    最好使用它并迁移到64位操作系统。它们现在很流行。