精华内容
下载资源
问答
  • 修改java虚拟机内存

    2014-08-20 16:25:32
    1、普通java应用程序,使用java命令运行, java -Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m...在catalina.bat的set JAVA_OPTS修改为set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:MaxNewSize=256m -...
    1、普通java应用程序,使用java命令运行, 
    
    java -Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -jar

    2、tomcat
    在catalina.bat的set JAVA_OPTS修改为set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m –server

    3、eclipse中运行应用程序
    程序右键选属性->run/debug settings->选中应用程序->编辑->Arguments->VM arguments输入框输入
    -Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
    4、weblogic
    在$DOMAIN_HOME/bin/setDomainEnv.sh修改内存
    展开全文
  • 因为内存溢出问题 1. Linux下直接修改%tomcat_home%/bin/catalina.sh文件 在注释下紧接一行也就是脚本正文开始之前 加上 JAVA_OPTS="-Xms128m -Xmx512m" 如果报-x没有定义,则用 declare -x JAVA_OPTS...
    因为内存溢出问题
    
    1. Linux下直接修改%tomcat_home%/bin/catalina.sh文件
    在注释下紧接一行也就是脚本正文开始之前 加上
    JAVA_OPTS="-Xms128m -Xmx512m"
    如果报-x没有定义,则用
    declare -x JAVA_OPTS="-Xms512m -Xmx1024"
    初始值和最大值自己根据实际情况可以更改.



    2. Windows下通过Tomcat下直接启动可以直接修改%tomcat_home%/bin/catalina.bat文件
    在JAVA_OPTS修改
    set JAVA_OPTS=-Xms128m -Xmx512m

    set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m



    3. 如果是通过Myeclipse启动Tomcat修改
    Myeclipse配置选项 打开选项..输入tomcat关键字,然后点开Server下面的JDK就会出现配置区域.
    直接加入 -Xms128m -Xmx512m



    4..如果 是通过service.msc里的Tomcat服务启动Tomcat则需要修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation
    \Tomcat Service Manager\Tomcat6\Parameters\JavaOptions
    原值为
    -Dcatalina.home=”C:\ApacheGroup\Tomcat 6.0″
    -Djava.endorsed.dirs=”C:\ApacheGroup\Tomcat 6.0\common\endorsed”
    -Xrs
    加入 -Xms300m -Xmx512m
    展开全文
  • 原文地址: http://duanfei.iteye.com/blog/1189541 ...因为内存溢出问题 ...1. Linux下直接修改%tomcat_home%/bin/catalina.sh文件 ...JAVA_OPTS='-server -Xms512m -Xmx1024m -XX:PermSize=12

    原文地址: http://duanfei.iteye.com/blog/1189541


    因为内存溢出问题

    1. Linux下直接修改%tomcat_home%/bin/catalina.sh文件

    在注释下紧接一行也就是脚本正文开始之前 加上

    JAVA_OPTS='-server -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m'

    如果报-x没有定义,则用

    declare -x JAVA_OPTS="-Xms512m -Xmx1024"

    初始值和最大值自己根据实际情况可以更改.

     

    2.  Windows下通过Tomcat下直接启动可以直接修改%tomcat_home%/bin/catalina.bat文件

    在JAVA_OPTS修改

    set JAVA_OPTS=-server -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m

     

    3.  如果是通过Myeclipse启动Tomcat修改

    Myeclipse配置选项  打开选项..输入tomcat关键字,然后点开Server下面的JDK就会出现配置区域.

    直接加入  -Xms128m -Xmx512m 

     

    4..如果 是通过service.msc里的Tomcat服务启动Tomcat则需要修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation

      \Tomcat Service Manager\Tomcat6\Parameters\JavaOptions

    原值为

     -Dcatalina.home=”C:\ApacheGroup\Tomcat 6.0″

     -Djava.endorsed.dirs=”C:\ApacheGroup\Tomcat 6.0\common\endorsed”

    -Xrs

     加入 -Xms300m -Xmx512m



    相关参考: http://binma85.iteye.com/blog/728018

                      http://blog.csdn.net/fengyie007/article/details/1780375


    展开全文
  • 《深入理解Java虚拟机》个人读书总结——JAVA虚拟机内存

    《深入理解Java虚拟机》个人读书总结——JAVA虚拟机内存

    最近在读《深入理解Java虚拟机》,网上对Java虚拟机的总结有很多,自己觉得自己也应该记录一点个人的读书总结,以便日后复习方便。
    随着开发工作的逐渐深入,对Java的理解不能止步于crud,Java不像C语言,Javaer是不需要自己控制内存的,一旦出现常见的OutOfMemoryError或StackOverflowError,如果不了解虚拟机是怎样使用内存的,那么排查错误将会出现一定的阻碍。

    运行时数据区域

    Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。具体如图所示:
    这里写图片描述
    由图可以看出,JVM将内存主要划分为:方法区、虚拟机栈、本地方法栈、堆、程序计数器五大块。

    程序计数器

    程序计数器是一块较小的内存空间,在大学操作系统一课中我们知道程序计数器是用于存放下一条指令所在单元的地址的地方。为了保证程序(在操作系统中理解为进程)能够连续地执行下去,处理器必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在虚拟机的概念模型中,字节码解释器工作时也是通过改变这个计数器的值来选取下一条需要执行的字节码指令。
    Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间片来实现,在任何一个确定的时刻,一个处理器都只会执行一条线程肿的指令,因此,为了确保线程切换之后能恢复到正确的执行位置,每条线程都需要一个独立的程序计数器,这样就互不影响独立存储,因此程序计数器是线程私有的内存。
    此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。

    虚拟机栈

    虚拟机栈也是线程私有的,它的生命周期与线程相同。那个栈可以理解成我们平时所熟悉的数据结构的那个栈,里面的一个个栈元素我们叫它栈帧(其实是一种数据结构,后面会说)。每个方法在执行的同时会创建一个栈帧,用于存储局部变量表、操作数栈,动态链接、方法出口等信息。然后每个方法从调用到执行结束就相当于这些栈帧在虚拟机栈中出栈入栈的过程。
    在Java虚拟机规范中,对这个区域规定了两种异常状况:如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常;如果虚拟机栈可以动态扩展(通过虚拟机参数-Xss控制),如果扩展到无法申请到足够的内存就会抛出OutOfMemoryError异常。

    本地方法栈

    这个栈和上面所说的栈其实是作用相似的,虚拟机栈是为Java方法服务,这个本地方法栈则是为native方法服务。虚拟机规范抛出的异常也是和虚拟机规范一样的,正因为虚拟机规范中没怎么硬性规定,sun的HotSpot虚拟机直接就将虚拟机栈和本地方法栈合二为一了。

    堆可以说是虚拟机中所管理的内存中最大的一块了。这块内存是被所有线程都共享的,主要的作用是用来存放对象实例的。所有的对象实例和数组都要在堆上分配。当然,随着JIT编译器的发展现在也不是那么”绝对”了。
    Java堆是垃圾收集器管理的主要区域,由于现在的收集器基本上采用的都是分代收集算法,所有Java堆可以细分为:新生代和老年代。在细致分就是把新生代分为:Eden空间、From Survivor空间、To Survivor空间。在HotSpot中还提出了一个永久代的概念,从内存中抠出一部分用于存储类的元信息,类变量等内容,将其当成方法区来用,不过在Java8之后,这个概念被去掉了,换汤不换药,现在改叫元空间。
    Java虚拟机规范规定,堆可以处于物理上不连续的内存空间中,只要逻辑上是连续的即可。在实现上即可以是固定大小的,也可以是可动态扩展的(通过虚拟机参数 -Xmx和-Xms控制)。如果在堆中没有内存完成实例分配,并且堆大小也无法在扩展时,将会抛出OutOfMemoryError异常。

    方法区

    方法区和堆一样,同样是线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,可以通过虚拟机的参数-XXpermSize和-XX:MaxPermSize来限制方法区大小。

    运行时常量池

    常量池用于存放编译期间生成的各种字面量和符号引用。这是一个class文件中的一个区域。
    Java程序并不一定要求常量在编译期间产生,有可能在运行的时候会产生一个新的常量。为了实现这种动态性,在方法区中还有一个区域叫运行时常量池。在运行期间这里的内容是可以修改的。同时,在类的加载后会把常量池的东西存放到运行时常量池。
    这里还要说的一个是字符串常量池,我想说的是这个和运行时常量池并没有什么关系。字符串常量池是线程共享的,在Java7之前是存在于方法区里的,Java7之后被转移到堆上了。现在要我说这两个常量池是平级。
    运行时方法区和方法区一样,内存分配不足时会抛出OutOfMemoryError异常。

    直接内存

    直接内存不是虚拟机运行是数据区的一部分。也不是Java虚拟机规范中定义的内存区域。但是这部分内存也被频繁地使用,也有可能会导致OutOfMemoryError异常。
    在JDK1.4中新加入了NIO,它可以使用Native函数库直接分配堆外内存,这内存是不受虚拟机控制的,但会受到本机的限制。所以在设置虚拟机的参数-Xmx等参数时要考虑到各内存区域总和要小于物理内存限制才行,从而避免动态扩展的时候出现OutOfMemoryError异常。

    展开全文
  • Java虚拟机(JVM)一种用于计算机设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和...
  • java虚拟机系列:java虚拟机内存模型

    千次阅读 2018-08-02 14:39:25
    java内存模型,分为程序计数器,虚拟机栈,本地方法栈,java堆,java栈。根据受访的权限不同设置,可以分为线程共享和线程私有。线程共享指可以允许所有的线程共享访问的一类内存区域,包括堆内存区,方法区,运行的...
  • Java 虚拟机内存分配机制

    千次阅读 2017-09-15 15:34:45
    Java 虚拟机内存分配机制 内存区域划分 对于大多数的程序员来说,Java 内存比较流行的说法便是堆和栈,这其实是非常粗略的一种划分,这种划分的“堆”对应内存模型的 Java 堆,“栈”是指虚拟机栈,然而 Java ...
  • 3.Java虚拟机内存管理

    2019-05-29 22:56:35
    一、Java虚拟机内存区域简介 分析:运行时数据区包括线程共享区和线程独占区。线程共享区包括方法区和堆,被所有线程所共享;线程独占区包括虚拟机栈、本地方法栈和程序计数器,为单个线程所独有。 二、Java虚拟机...
  • java虚拟机内存

    千次阅读 2018-08-05 11:22:56
    1、JDK(java development Kit) 包括 java程序设计语言、java虚拟机、Java API类库 三部分, 是支持java程序开发的最小环境。 JRE(java Runtime Enviromet)包括 Java API类库中的Java SE API子集和java虚拟机 两...
  • Java虚拟机内存管理

    2018-08-28 10:17:31
    对于Java程序员来说,在虚拟机自动内存管理机制帮助下,不需要为每一个new操作去写配对的delete/...Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。根据《Java虚拟机规范(Java S...
  • java 虚拟机内存区域

    2020-02-09 20:24:21
    *Java是一套体系,包括Java程序设计语言、class字节文件、Java虚拟机和Java API。程序设计语言就是语法,思想,语义等,class字节文件时java程序编译后形成的可直接在java虚拟机中运算的文件,Java虚拟机是Java程序...
  • java虚拟机内存设置

    千次阅读 2016-12-22 14:48:33
    JVM(java 虚拟机内存设置 一、设置JVM内存设置 1. 设置JVM内存的参数有四个: -Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而
  • java虚拟机内存区域

    2020-12-22 14:35:09
    java虚拟机在执行java程序时会将内存划分为不同的区域,不用区域负责不同任务。 1、程序计数器 程序计数器(Program Couter Register)是一块较小的内存空间,作用可以当做当前线程所执行的字节码的行号指示器。 ...
  • java虚拟机是java程序员的操作系统,所以掌握java虚拟机对于java程序员来说很有必要。在接下来的时间里,我将...如上图所示,java虚拟机内存分为方法区、堆内存、虚拟机栈、本地方法栈,程序计数器几个部分,下面分别介
  • 更多文章 访问我的博客:http://www.caoyong.xin:8080/bloggerJava虚拟机内存区域详解半年前买了一本深入理解Java虚拟机,买了就放在那里去了,期间拿出来想研究一下,还没有看一会,哇 !脑袋疼。也就又放回原处,...
  • java虚拟机内存不足

    千次阅读 2017-06-08 17:17:24
    在运行java程序时,遇到问题"Could not create the Java Virtual Machine."如下截图: 大概原因,就是java堆内存不足以运行JVM,需要增加内存。...现在给出一个全局的java虚拟机修改内存的方法。在WIN XP,
  • Java虚拟机内存模型

    2019-03-08 16:36:58
    虚拟机栈:主要描述Java方法的内存模型,方法执行时会创建栈帧,存放局部变量表(基本数据类型和引用)、操作数栈、方法出口等信息。 本地方法栈:同虚拟机栈,只不过服务于Native方法;HotSpot虚拟机虚拟机栈和本地...
  • Java虚拟机内存区域

    2020-02-19 20:47:30
    Java虚拟机知识点总结 1、Java内存区域 1.1 Java内存区域 1、程序计数器 ​ 程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一...
  • Java虚拟机内存参数设置

    万次阅读 2018-08-28 21:10:23
    -Xms:表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可 -Xmx:表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms ...
  • 如果出现java.lang.OutOfMemoryError: Java heap space异常,说明Java虚拟机的堆内存不够。原因有二: a.Java虚拟机的堆内存设置不够,可以通过参数-Xms、-Xmx来调整。 b.代码中创建了大量大对象,并且长时间不能被...
  • java虚拟机内存分为五大块 程序计数器 java虚拟机栈 本地方法栈 堆 方法区 一 :程序计数器:  1 是一块较小的内存,可以看做当前线程所执行字节码的行号指示器。  2 在多线程中每一个线程都应该有一个独立...
  • JAVA虚拟机自动化两大构成,内存动态分配和垃圾收集技术。内存自动分配和GC的相互协作运行,减少JAVA编程内存泄漏和内存溢出的问题。但内存泄漏和内存出,我们也偶尔会碰到。两者的区别有时怎样的呢? 内存泄漏和...
  • 与c++程序员不同,java程序员在编写代码的过程中并不需要直接与内存打交道,而是把内存分配与动态回收的任务交给java虚拟机。这大大简化了程序员编写代码的工作,但同时由于java程序员不需要关心内存的使用,导致其...
  • Java虚拟机内存调优经验

    千次阅读 2018-02-27 09:09:39
    转载自 http://www.cnblogs.com/jackyrong/archive/2010/01/21/1653163.html 尊重别人的...Java 虚拟机启动时创建。对象的堆内存由称为垃圾回收器 的自动内存管理系统回收。 堆由两部分组成: 其中eden+fromspace+t...
  • 1.运行时数据区域 五大部分:虚拟机栈、本地方法栈、程序计数器、堆、方法区 由所有线程共享的数据区:...一个方法被调用直至执行完毕的过程,对应Java虚拟机中入栈到出栈的过程 线程私有 虚拟机栈两类异常情况:
  • Java虚拟机提供了自动内存管理,垃圾收集为我们处理了很多繁琐的工作。也正是因为把内存管理的控制权交给了Java虚拟机,程序一旦出现内存泄漏和内存溢出,如果不了解...一、Java虚拟机内存区域划分 JDK后续的版...
  • JAVA虚拟机内存模型

    2014-05-13 22:34:58
    Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。  程序计数器(Program Counter ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 161,683
精华内容 64,673
关键字:

修改java虚拟机内存

java 订阅