中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jvm內存模型及分配參數

發布時間:2020-06-26 13:17:42 來源:網絡 閱讀:239 作者:劉元興 欄目:網絡安全

jvm內存模型

  1. 程序計數器:是一塊很小的內存空間。當線程數量超過cpu數量時,線程之間根據時間片輪詢搶奪cpu資源。每一個線程都必須用一個獨立的程序計數器,用于記錄下一條要運行的指令。

  2. java虛擬機棧(線程棧 ):也是線程私有內存空間,他和java線程在同一時間創建,他保存方法的局部變量、部分結果,并參與方法的調用和返回。如果線程在計算過程中,請求的棧深度大于最大可用的棧深度,則拋出StackOverflowError;如果java棧可以動態擴展,而在擴展的過程中,操作系統沒有足夠的內存空間來支持棧的擴展,則拋出OutOfMemoryError;——參數設置參見《設置線程棧 》

  3. 本地方法棧:用于管理本地方法的調用,本地方法是使用C實現的。

  4. java堆:堆空間分為新生代和老年代。新生代用于存放產生的新對象,老年代用于存放年長的對象(存在 時間較長,經過垃圾回收次數較多的對象)。新生代又可以細分為eden,s0和s1,eden大部分對象剛建立時,通常放在這里。s0和s1為survivor空間,也就是說存放其中的對象至少經歷了一次垃圾回收,并得以幸存。如果幸存區的對象到了指定的年齡仍未被回收,則有機會進入老年代。

  5. 方法區:與堆空間類似,也是被jvm的所有線程共享的,主要保存的是類的類型信息、常量池、域信息、方法信息等元數據。

jvm內存模型及分配參數 

jvm內存模型及分配參數

 

設置最大、最小堆內存

  1. 用-Xmx指定最大堆內存,最大堆內存指的是新生代和老年代的大小之和的最大值,它是java應用程序的堆上線。

  2. 用-Xms指定最小堆內存,也就是jvm啟動時,所占據的操作系統內存大小。

  3. 當-Xms指定的內存大小確實無法滿足應用程序是,jvm才會向操作系統申請更多的內存,直至達到-Xmx指定的內存大小為止。 如果-Xms的數值較小,那么jvm為了保證系統盡可能的在指定內存范圍內運行,就會頻繁的進行gc操作,以釋放失效的內存空間,從而,會增加Minor GC和Full GC的次數,對系統性能產生一定影響。所以,把-Xms值設置為-Xmx時,可以在系統運行初期減少gc的次數和耗時

設置線程棧

  1. 線程棧是線程的一塊私有空間,可以用-Xss設置線程棧的大小,棧的大小直接決定了函數調用的可達深度。

  2. 在線程中進行局部變量分配,函數調用時,都需要在棧中開辟空間。

  3. 如果棧的空間分配太小,那么線程在運行時,可能沒有足夠的空間分配局部變量或者達不到足夠的函數調用深度,導致程序異常退出;如果棧空間過大,那么開設線程所需的內存成本就會上升,系統所能支持的線程總數就會下降。

  4. java堆和線程棧都是像操作系統申請內存空間,如果堆空間過大,就會導致操作系統可用于線程棧的內存減小,當系統由于內存不夠而無法創建新的線程時,會拋出OOM異常(注意這個OOM不是堆內存不足)。所以,如果系統確實需要大量線程并發執行,那么設置一個較小的堆和較小的棧,有助于提高系統所能承受的最大線程數

設置新生代

  1. 用-Xmn指定新生代的大小,新生代的大小一般設置為整個堆空間的1/4到1/3。設置一個較大或較小的新生代對系統性能已經gc行為有很大影響。

  2. 使用-XX:NewSize設置新生代的初始大小,-XX:MaxNewSize設置新生代的最大值。通常情況下只設置-Xmn即可滿足需要。

設置持久代

  1. 持久代(方法區)不屬于堆得一部分,使用-XX:MaxPermSize設置持久代最大值,使用-XX:PermSize設置持久代最小值。

  2. 持久代的大小直接決定了系統可以支持多少個類定義和多少常量。

  3. 一般MaxPermSize設置為64M或128M。

取得堆快照(堆dump)

  使用-XX:+HeapDumpOnOutOfMemoryError參數在程序發生OOM時,導出應用程序的當前堆快照。

  通過參數-XX:HeapDumpPath可以指定堆快照的保存位置。

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台北市| 永顺县| 剑阁县| 抚宁县| 沅陵县| 怀化市| 杭州市| 阿巴嘎旗| 成安县| 松江区| 抚宁县| 农安县| 荥经县| 曲沃县| 龙泉市| 丹江口市| 青海省| 增城市| 乌审旗| 克东县| 汽车| 资讯| 黄梅县| 鹿邑县| 蒙山县| 山西省| 紫金县| 齐齐哈尔市| 福海县| 吴旗县| 和平区| 榕江县| 慈利县| 鞍山市| 荃湾区| 平江县| 朝阳县| 麻阳| 临潭县| 全州县| 郓城县|