1. 程式人生 > >第二節 JVM優化應用以及知識總結

第二節 JVM優化應用以及知識總結

family initial 內存 -s window tom linu ast 類型

在JVM中。假設98%的時間是用於GC且可用的HeapSize不足2%時將會拋出OOM異常;HeapSize最大不要超過可用物理內存的80%,一般-Xms –Xmx設置為同樣,-Xmn設置為1/4的-Xmx。

若-Xms、-Xmx設置的大小超過物理內存,則會出現:

”Error occurred during initialization if VM could not reserve enoughspace fro object heap”

對於Web類型的應用(要求大吞吐量)堆大一些好。而對於GUI應用(要求實時響應)堆太大會占用太多時間進行垃圾收集,這樣就不能實現較好的實時性,交互性會較差。

通常出現的錯誤:

“java.lang.OutOfMemeoryError:Java Heap space”是由於JVM的默認堆大小是64MB,能夠通過設置最大值和最小值實現。通常設置為內存大小的80%,以下以1G內存為例。

解決方式:

1)在Windows中加入環境變量

JAVA_OPTS=-Xm800m–Xmx800m

2)若用的是Tomcat,則在Tomcat的主文件夾的bin/catalina.bat中加上

SetJava_OPTS=-Xm800m –Xmx800m

3)在Linux系統中。則在Tomcat的主文件夾的bin/catalina.bat中加上

Set Java_OPTS=’-Xm800m –Xmx800m’

主要知識點:

JVM內存組成:新域(YoungGeneration)、舊域(Tenured Generation)和永久域(Perm Generation)。新域有Eden和2個救助域構成。永久域保存在虛擬機的整個生存周期都存在的對象,永久域不會被垃圾收集器清空。

技術分享

第二節 JVM優化應用以及知識總結