`

java支持的最大内存

阅读更多

一.jdk各个版本在不同操作系统中支持的最大内存是不一样的,但是可以通过以下方法来进行测试 

c:>java -Xmxxxxxm(g) -version 

其中xxxx为最大内存数值, m(g)是内存的计量单位,如果命令能够正确显示出jdk的版本等信息,说明当前jdk支持测试的最大内存数量,否则说明测试的内存超出了jdk支持的最大值,

例如: 

c:\\documents and settings\\fengbaoxp>java -xmx1g -version 

java version \"1.6.0_03\" 

java(tm) se runtime environment (build 1.6.0_03-b05) 

java hotspot(tm) client vm (build 1.6.0_03-b05, mixed mode) 

命令正确显示了jdk信息,说明当前jdk能够支持1g的内存。 

c:\\documents and settings\\fengbaoxp>java -xmx2g -version 

error occurred during initialization of vm 

could not reserve enough space for object heap 

could not create the java virtual machine. 

 

-bash-3.00$ ./java -Xmx2048m -version

java version "1.6.0_04"

Java(TM) SE Runtime Environment (build 1.6.0_04-b12)

Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)

-bash-3.00$ ./java -Xmx1024m -version

java version "1.6.0_04"

Java(TM) SE Runtime Environment (build 1.6.0_04-b12)

Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)

-bash-3.00$ ./java -Xmx4096m -version

Invalid maximum heap size: -Xmx4096m

The specified size exceeds the maximum representable size.

Could not create the Java virtual machine.

 

命令打印出错误信息,说明当前jdk不能支持2g的内存。 

 

本机测试:



二.jre还区分client和server两个版本 

client版本加载速度较快,但是支持内存比server要少,比较适合桌面应用; 

server版本加载速度较慢,但是运行比较快而且稳定,一些jre还针对server版进行优化,所以我们运行服务端程序最好使用server版。 

说明当前jre为client版 

说明当前jre为server版 

jdk一般默认为client版,要想修改为server版,需要修改 [jre安装目录]/lib/i386/jvm.cfg文件 

将: 

-client known 

-server known 

调整顺序改为: 

-server known 

-client known

如下所示:


 

  • 大小: 22.8 KB
  • 大小: 10.1 KB
  • 大小: 11.4 KB
  • 大小: 53.8 KB
分享到:
评论

相关推荐

    java内存泄漏解决

    这是因为分配给JVM的堆内存太小,不足以支持当前应用的需求。可以通过增加`-Xmx`参数来设置最大堆内存大小。 #### 四、内存泄漏识别与定位 1. **工具选择**:可以使用如VisualVM、JProfiler等工具来监控和诊断内存...

    Java 虚拟机JVM内存模型

    Java栈用于存储局部变量和方法调用的状态,每个线程都有自己的Java栈,支持线程的独立执行。 - **2.5.2 堆** 堆是JVM所管理的最大的一块内存区域,所有对象实例和数组都要在堆上分配。堆空间被所有线程共享,因此...

    java中jvm内存分配相关资料总结整理

    - **堆**:所有对象实例以及数组都在这里分配内存,是JVM中最大的一块内存区域,支持垃圾回收。 - **栈**:每个线程都有一个独立的栈,用于存储方法调用的帧,包含局部变量表、操作数栈、动态链接和方法返回地址。...

    JAVA虚拟机的内存管理

    在Java 2平台的强大支持下,J2SE能够自动管理内存,这大大减轻了开发者的负担,让他们不必再进行复杂的显式内存管理工作。本文档旨在对Sun J2SE 5.0版本中的Java HotSpot虚拟机(JVM)内存管理机制进行全面概述,包括...

    Java内存监控工具Java VisualVM

    ### Java内存监控工具Java VisualVM #### 一、概述 Java VisualVM是一款强大的Java应用程序性能分析和诊断工具,主要用于监控和分析Java应用的运行时行为,包括但不限于内存使用情况、线程状态、CPU使用率等关键...

    java使用JMAP定位代码内存泄漏在哪

    2. **Dominator Tree**:这个视图显示了对象之间的支配关系,帮助我们找出占用内存最大的对象。 3. **Top Consumers**:列出占用内存最多的对象和类,便于我们定位问题。 4. **OQL (Object Query Language)**:MAT...

    Java共享内存并行编程

    Java对多线程的支持使得开发者能够更方便地开发出并行程序。然而,直接使用Java线程API进行并行编程虽然直观,但在实际应用中往往难以管理和优化线程间的同步问题。为了解决这些问题,一些工具和技术被引入到Java中...

    java内存参数调优技巧

    - `-Xmx` 和 `-Xms` 参数用于设置Java虚拟机(JVM)的最大堆内存(Maximum Heap Size)和初始堆内存(Initial Heap Size),确保应用启动时就能获得足够的内存空间。通常,为了减少因内存动态调整带来的性能影响,...

    java解决大批量数据导出Excel产生内存溢出的方案

    可以通过增加`-Xms`和`-Xmx`参数来设置初始和最大堆内存,但这种方法只是治标不治本,对于大规模数据导出,更推荐使用上述流式处理方案。 5. **延迟计算和写入**: - 只在需要时才计算和写入数据,而不是预先计算...

    java 内存监控

    1. **堆内存**:这是Java应用中最大的内存区域,用于存储对象实例。当堆空间不足时,会触发Full GC(垃圾收集),如果仍然无法释放足够的空间,就会出现`OutOfMemoryError: Java heap space`错误。 2. **年轻代...

    java内存管理详细介绍.doc

    Java程序员可以通过调整JVM的内存参数,如-Xms、-Xmx来设置堆内存的初始大小和最大大小,-XX:NewRatio来调整新生代和老年代的比例,以及-XX:SurvivorRatio来调整Eden和Survivor区的比例。此外,选择合适的垃圾收集器...

    Java内存结构.pdf

    堆是Java虚拟机所管理的内存中最大的一块,主要用于存放所有由`new`关键字创建的对象实例。它被所有线程共享,并且它的生命周期与Java虚拟机相同。 ##### 堆的分类 堆可以分为两个主要区域:年轻代(Young ...

    Java获取系统CPU、内存、硬盘等系统信息

    在Java编程中,获取系统资源的信息是常见...总的来说,Java虽然不能直接提供获取所有系统资源的通用方法,但通过标准库和其他辅助工具,我们可以获取到CPU、内存和硬盘等关键信息,为系统监控和性能优化提供数据支持。

    java -jvm 内存分配和jvm调优

    5. 本地方法栈(Native Method Stack):支持Java虚拟机调用本地(C/C++)方法,为每个线程提供服务。 了解这些内存区域后,我们来谈谈JVM内存调优。调优主要包括以下几个方面: 1. 设置合理的堆大小:过大可能...

    java内存讲解

    ### Java内存管理与垃圾回收机制详解 #### 一、引言 Java作为一种广泛使用的编程语言,其内存管理和垃圾回收机制是开发人员必须了解的核心概念之一。本文将详细探讨JVM的垃圾回收机制及其调优方法,深入分析Java...

    Java 内存区域和GC机制

    - **Java堆**:所有对象实例和数组都在这里分配内存,是JVM最大的一块内存区域,也是GC的主要区域。 - **方法区**(在Java 8中被元空间替换):存储已加载的类信息、常量、静态变量等,也称为永久代。 - **运行时...

    Java内存图

    Java堆是Java虚拟机所管理的内存中最大的一块,它是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。堆中的内存还可以细分为新生代和...

    Java运行内存分析

    Java堆是JVM所管理的内存中最大的一块,它也是被所有线程共享的一块内存区域。堆内存用于存放几乎所有的对象实例,是垃圾收集器主要管理的区域。Java堆可以处于物理上不连续的内存空间中,只要逻辑上是连续的即可。...

    Java 内存简要

    ### Java内存简要 #### 第一讲:Java基本概念 - **JDK**: Java Development Kit,Java开发工具包,包含了Java运行环境(JRE)、Java工具(如编译器`javac`、解释器`java`等)以及Java的基础类库(即Java API,包括...

Global site tag (gtag.js) - Google Analytics