jdk內存實際是jvm內存,jvm有一個運行時數據區,其實就是對這一部分的大小分配。
運行時數據區一般包括這幾個部分:程序計數器(Program Counter Register)、Java棧(VM Stack)、本地方法棧(Native Method Stack)、方法區(Method Area)、堆(Heap)linux
Xss:每一個線程的stack大小(棧)
Xmx:JAVA HEAP的最大值、默認爲物理內存的1/4
Xms:JAVA HEAP的初始值,server端最好Xms與Xmx同樣
Xmn:JAVA HEAP young區的大小
XX:PermSize:設定內存的永久保存區域
XX:MaxPermSize:設定最大內存的永久保存區域tomcat
在JDK1.8中,取消了PermGen,取而代之的是Metaspace,
因此PermSize和MaxPermSize參數失效,取而代之的是
-XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128mjvm
修改JDK內存
linux下:在tomcat的bin目錄下編輯catalina.sh
cygwin=false上面加入spa
JAVA_OPTS="-Xms1024m -Xmx2048m -Xss1024K -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize1024m"線程
出現異常Java.lang.OutOfMemoryError: Java heap space ,內存溢出異常。修改Eclipse中JVM的內存。 server
找到eclispe 中window->preferences->Java->Installed JRE ,點擊右側的Edit 按鈕,在編輯界面中的 「Default VM Arguments 」選項中,填入以下值便可。ip
-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m內存