`
chengjiachen
  • 浏览: 9283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于java 虚拟机的内存设置

 
阅读更多
1、java把内存分两种:一种是栈内存,另一种是堆内存。

2、其默认空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。如果内存剩余不到40%,JVM就会增大堆到Xmx设置的值,内存剩余超过70%,JVM就会减小堆到Xms设置的值。所以服务器的Xmx和Xms设置一般应该设置相同避免每次GC后都要调整虚拟机堆的大小。假设物理内存无限大,那么JVM内存的最大值跟操作系统有关,一般32位机是1.5g到3g之间,而64位的就不会有限制了。

注意:如果Xms超过了Xmx值,或者堆最大值和非堆最大值的总和超过了物理内存或者操作系统的最大限制都会引起服务器启动不起来。

3、另一个是java内存堆不足时,会不断调用GC,若连续回收都解决不了内存堆不足的问题时,就会报out of memory错误。

4、在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配。

5、堆内存用来存放由new创建的对象和数组。

6、堆的优势是可以动态分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的。缺点就是要在运行时动态分配内存,存取速度较慢。

7、栈的优势是存取速度比堆要快,缺点是存在栈中的数据大小与生存期必须是确定的无灵活性。

8、Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

9、java堆分为三个区:New、Old和Permanent。
分享到:
评论

相关推荐

    深入理解Java 虚拟机内存模型.rar

    以下是对Java虚拟机内存模型的详细解读。 1. **程序计数器(Program Counter Register)** - 这是每个线程私有的内存区域,用于存储当前线程执行的字节码的地址,每次方法调用都会更新这个计数器,以便下一次知道...

    Java虚拟机内存管理总结

    Java虚拟机内存管理总结 Java虚拟机(JVM)中的内存管理是指Java语言中对象的分配和释放问题。Java中的内存管理可以分为两部分:对象的分配和释放。 对象的分配是由程序完成的,程序员需要通过关键字new为每个对象...

    解决java虚拟机内存不足问题

    解决java虚拟机内存不足问题,简单快捷

    深入java虚拟机.pdf

    Java 虚拟机的垃圾收集是指在 Java 虚拟机中自动地回收不再使用的对象,以释放内存空间。垃圾收集可以是周期性的,也可以是根据需要进行的。Java 虚拟机提供了多种垃圾收集算法,如标记-清除算法、复制算法、标记-...

    Java虚拟机内存区域模型

    "Java虚拟机内存区域模型" Java虚拟机内存区域模型是Java虚拟机管理的内存区域模型,该模型将内存区域分为程序计数器、虚拟机栈、本地方法栈、堆和方法区五个部分。程序计数器是一块较小的内存空间,用于记录当前...

    java虚拟机的内存结构

    java虚拟机的内存结构,关于内存的相关介绍等,想要了解更多JVM的

    基于Java虚拟机内存模型的性能调优方法.zip

    总结来说,基于Java虚拟机内存模型的性能调优涉及到多个层面,包括理解内存结构、垃圾回收机制、内存分配策略、调优工具的使用以及JVM参数的设置。通过深入理解和实践这些知识,开发者能够有效地优化Java应用程序,...

    Java虚拟机(Java VM) msjavax86 微软java虚拟机

    Java虚拟机(Java Virtual Machine,简称JVM)是Java编程语言的核心组成部分,它是一个用于执行Java字节码的软件或硬件设备。Java程序在编译时并不直接转化为机器语言,而是转化为中间代码,即字节码。JVM的作用就是...

    Java虚拟机规范中文版(JavaSE7).pdf

    Java虚拟机的结构包括内存区域、执行引擎、类加载器系统等组件。内存区域主要分为堆、栈、方法区、本地方法栈和程序计数器等部分,每个都有特定的用途,例如,堆存储对象实例,栈处理方法调用,方法区存储类信息。...

    eclipse设置 java内存

    这将设置 Java 虚拟机内存使用最小是 40M,最大是 512M,并设置最大永久生成区的大小为 256M。 JVM 内存设置的重要性 正确地设置 JVM 内存大小是非常重要的。如果 JVM 内存太小,可能会导致内存溢出错误,导致 ...

    Java虚拟机内存模型

    Java虚拟机内存模型

    JAVA虚拟机的内存管理

    ### JAVA虚拟机的内存管理详解 #### 一、引言 在Java 2平台的强大支持下,J2SE能够自动管理内存,这大大减轻了开发者的负担,让他们不必再进行复杂的显式内存管理工作。本文档旨在对Sun J2SE 5.0版本中的Java ...

    支持复合对象的Java虚拟机内存管理技术研究.pdf

    支持复合对象的Java虚拟机内存管理技术研究 在面向对象系统中,对象是研究的基本单位,对象可以是简单的整数或复杂的飞机等。对象具有状态和操作,对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。...

    Java虚拟机规范中文版.pdf

    Java虚拟机还负责垃圾回收(Garbage Collection),即自动管理内存,释放不再使用的对象占用的内存,减轻程序员的负担。垃圾回收机制是Java语言与生俱来的特性之一,与C/C++等语言相比,Java的内存管理更简单、更...

    java虚拟机规范(java SE7)

    第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java堆,方法去,运行时常量池,本地方法栈); 第三章:为java虚拟机编译; 第四章:Class文件格式; 第五章:加载、链接与初始化

    java 虚拟机参数配置说明及Myeclipse内存不足

    本文将深入探讨Java虚拟机的参数配置,特别是针对MyEclipse开发环境中遇到的内存不足问题。 首先,Java虚拟机参数配置是优化JVM性能的关键步骤。Java程序在启动时可以设置一系列参数,这些参数分为两种类型:标准...

    java虚拟机

    Java虚拟机(JVM,Java Virtual Machine)是Java平台的核心组成部分,它负责执行Java程序,为Java代码提供了跨平台的运行环境。Java虚拟机的概念始于Sun Microsystems,现在由Oracle公司继续发展和维护。JVM的设计...

    JAVA虚拟机内存使用优化研究与应用.pdf

    根据提供的文件内容,以下是关于JAVA虚拟机(JVM)内存使用优化的知识点: 1. JVM内存优化的重要性:在运行Java应用程序时,尤其是涉及到大量数据查询和高并发操作的场合,系统可能由于内存溢出而不稳定。JVM内存...

    java虚拟机各种版本

    Java虚拟机(JVM)是Java编程语言的核心组成部分,它为Java程序提供了跨平台的运行环境。Java程序在编写完成后,会被编译成字节码(.class文件),这些字节码可以在任何装有JVM的系统上运行,实现了“一次编写,到处...

    Java虚拟机规范(中文版) Java SE 7

    这份文档不仅对Java虚拟机的基本原理进行了详尽的描述,还定义了Java虚拟机的运行时环境、内存布局、类文件结构等关键要素。这对于理解Java程序是如何被执行的非常重要。 #### 版本信息 该文档的原文版本发布于...

Global site tag (gtag.js) - Google Analytics