有關記憶體的常用配置引數

2022-09-08 05:42:13 字數 1242 閱讀 2169

來指定這個比列。

server端jvm最好將-xms和-xmx設為相同值,避免每次垃圾**完成後jvm重新分配記憶體,也可以減少垃圾**次數

;開發測試機jvm可以保留預設值。(例如:-xms4g)。

-xx:minheapfreeration=

來指定這個比列。最佳設值應該視物理記憶體大小及計算機內其他記憶體開銷而定。(例如:-xmx4g)

,-xms和-xmx設為不同和相同值,用**對比一下,看看**次數的變化:

2.-xx:+useserialgc(序列垃圾**器,預設,可以不配置)

minor gc(垃圾**)會消耗資源,系統就會變得卡頓

)class

jvmtest

public

static string tom(long

bytenum)

public

static

void

jvminfo()

}解釋:[gc [defnew: 273088k(新生代垃圾**之前的值) -> 5561k(新生代垃圾**之後的值)(307200k), 0.0186715 secs] 278084k(堆記憶體垃圾**之前的值) -> 10558k(堆記憶體垃圾**之後的值)(989888k), 0.0187027 secs] [times: user=0.02 sys=0.00, real=0.02 secs]

jdk1.4以後將-xx:newsize和-xx:maxnewsize合一

,因為我們設定他們的時候也建議設定一樣大)

young區大小(新生代)

。整個堆大小=年輕代大小 + 年老代大小 + 持久代大小(相對於hotspot 型別的虛擬機器來說)。持久代一般固定大小為64m,所以增大年輕代後,將會減小年老代大小。此值對系統效能影響較大,sun官方推薦配置為整個堆的3/8。(例如:-xmn2g)

-xx:pretenuresizethreshold=1024

(單位為位元組,預設為0)來代表超過多大時就不在新生代分配,而是直接在老年代分配。

在相同物理記憶體下,減小這個值能生成更多的執行緒。

但是作業系統對乙個程序內的執行緒數還是有限制的,不能無限生成,

經驗值在3000~5000左右。(推薦:小系統:-xss128k,大系統:-xss256k)

有關記憶體分布

linux下程序的記憶體分布 核心空間 棧 棧的下面有預留空間,棧記憶體方向向低位址延伸 動態鏈結對映區 堆 堆的上方有預留空間,堆記憶體方向向高位址延伸 讀寫部分 唯讀部分 預留空間 棧 例項 棧頂 0xbfffffff 0xbffffffb 0xbffffff8 0xbffffff4 esp暫存...

個人有關記憶體的思考

對於應用程式而言,記憶體中儲存區域大致有堆 棧 靜態區域三個部分。系統在分配記憶體的時候,會在記憶體中尋找乙個能夠滿足申請大小的區域進行標記,並返回此區域的大小。在應用程式執行時,系統為應用程式分配的只是虛擬的位址空間,並不是實際的物理儲存器。這就需要給程序預定的區域 位址空間 調撥物理儲存器 記憶...

有關記憶體對齊的問題

1 某個成員距離首位置的偏移量最小是該成員大小的一倍。2 所有成員的大小之和應該是最大成員大小的整數倍。為什麼要記憶體對齊?點這裡 來段 解釋下 我們接下來就來解釋為什麼stu1和stu2分別是8和12,主要還是我們的兩個規則 注意 下面的表示方法,例如short b 就會在兩個位元組中填b,表示占...