1. 程式人生 > >堆、方法區引數配置

堆、方法區引數配置

-Xmx1400m -Xms1400m -XX:PermSize=128m -XX:MaxPermSize=256m

堆配置: -Xms40m:虛擬機器佔用系統的最小記憶體;設定Java程式啟動時初始堆大小 -Xmx256m:虛擬機器佔用系統的最大記憶體 ;設定Java程式能獲得最大堆大小

將初始堆大小和最大堆大小設定相等,可以減少程式執行時的垃圾回收次數,從而提高效能。

方法區引數配置: -XX:PermSize:最小堆大小。一般報記憶體不足時,都是說這個太小, 堆空間剩餘小於5%就會警告,建議把這個稍微設 大一點,不過要視自己機器記憶體大小來設定 -XX:MaxPermSize:最大堆大小。這個也適當大些 -Xmx512M的5%為25.6M,理論上要求-Xmx的數值與-XX:MaxPermSize必須大於25.6M

執行即將.class檔案交給JVM執行。而類載入就是JVM將.class檔案類資訊載入到記憶體並解析成對應的class類物件過程

類載入: 其過程分為:載入、連結、初始化(連結分為:驗證、準備和解析過程)

其中: 載入:把class位元組碼檔案從各個來源通過類載入器裝載入記憶體中。來源包含位元組碼來源和類載入器(由於java程式碼很容易被反編譯,如果需要對自己的程式碼加密 的話,可以對編譯後的程式碼進行加密,然後再通過實現自己的自定義類載入器進行解密,最後再載入)

驗證:為了保證載入進來的位元組流符合虛擬機器規範,不會造成安全錯誤

準備:主要是為類變數(注意,不是例項變數)分配記憶體,並且賦予初值。

解析:將常量池內的符號引用替換為直接引用的過程

初始化:這個階段主要是對類變數初始化,是執行類構造器的過程。