本文共 901 字,大约阅读时间需要 3 分钟。
java内存分为动态内存和静态内存
动态内存可以理解为堆内存 JVM Heap
静态内存可以理解为PermGen space 用来存放 静态变量及class类
1、 JVM Heap
JVM在启动的时候会自动设置JVMHeap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间不可超过物理内存,
可以利用JVM提供的-Xmn,-Xms,-Xmx等选项进行配置
2、PermGen space 内存的永久保存区域
这块内存主要被JVM存放Meta信息的,class 在被Load的时候被放入该区域,他和存放Instance的Heap区域不同
sun的GC不会在主程序运行期间对PermGen space进行清理,如果你的应用程序会载入很多class的话会出现OutOfMemory Error
可以手动设置:MaxPermSize
3、栈内存stack
不够用会抛出,stackOverflowError ,函数的调用过程都体现在堆栈和退栈上,一般不会出现问题,除非调用的构造函数层太多了,如果出现就修改程序去吧
通常栈的大小是1-2M,如果一个函数调用需要1k 大约想短语声明256个int类型,如果有上千层的函数也不过需要1MB
weblogic内存的修改
域 ——bin——setDomainEnv.cmd
配置中有 -Xms -Xmx,-XX:PermSize,-XX:PermMaxSize
tomcat内存修改(Windows 下的catalina.bat或Linux下的catalina.sh)
bin——catalina.cmd
加上下面这句:
rem
rem $Id: catalina.bat 1344732 2012-05-31 14:08:02Z kkolinko $ rem --------------------------------------------------------------------------- set JAVA_OPTS=-XX:PermSize=64m -XX:MaxPermSize=128m -Xms512m -Xmx1024m转载地址:http://bphgf.baihongyu.com/