1. 程式人生 > >Java堆分配引數總結

Java堆分配引數總結

與Java應用程式堆記憶體相關的JVM引數有:

  • -Xms:設定Java應用程式啟動時的初始堆大小
  • -Xmx:設定Java應用程式能獲得的最大堆大小
  • -Xss:設定執行緒棧的大小
  • -XX:MinHeapFreeRatio:設定堆空間最小空閒比例。當對空間的空閒記憶體小於這個數值時,JVM便會擴充套件堆空間
  • -XX:MaxHeapFreeRatio:設定堆空間的最大空閒比例。當堆空間的空閒記憶體大於這個數值時,便會壓縮堆空間,得到一個較小的堆
  • -XX:NewSize:設定新生代的大小
  • -XX:NewRatio:設定老年代與新生代的比例,它等於老年代大小除以新生代大小
  • -XX:SurviorRatio:新生代中eden區與survivior區的比例
  • -XX:MaxPermSize:設定最大的持久區的大小
  • -XX:PermSize:設定永久區的初始值
  • -XX:TargetSurvivorRatio:設定survivior區的可使用率。當survivior區的空間使用率達到這個數值時,會將物件送入老年代

相關推薦

Java分配引數總結

與Java應用程式堆記憶體相關的JVM引數有: -Xms:設定Java應用程式啟動時的初始堆大小-Xmx:設定Java應用程式能獲得的最大堆大小-Xss:設定執行緒棧的大小-XX:MinHeapFr

JVM之---Java記憶體分配引數

引數總結 配置 說明 -Xms 設定初始堆記憶體大小 -Xmx 設定堆記憶體的最大值 -Xss 設定棧記憶體的大小

java記憶體引數調整

1.java堆記憶體引數   我們為什麼需要進行jvm堆記憶體調整?          因為jvm垃圾回收機制,主要發生在堆記憶體區域,從堆的記憶體結構劃分,裡面存在伸縮區概念,那麼頻發的伸縮會影響jvm效能,所以我們需要去掉伸縮區

java記憶體分配,棧,常量池,方法區

java棧 java棧,在函式的定義中定義的基本型別(int,long,short,byte,float,double,boolean,char)的變數資料和物件的引用變數分配的儲存空間的地方。當在程式碼塊中定義一個變數時,java棧就為這個變數分配適當的記憶體空間,當該變數退出作用域時,jav

JVM記憶體管理與自定義分配引數詳解

堆記憶體模型:   在Java中,堆被劃分成兩個不同的區域:新生代(Young),老年代(Old)。而Permanent屬於永久代(方法區),不屬於堆記憶體。新生代又被分為了三個區域:Eden,from  survivor,to survivor。這樣劃分的目的

Java和棧分配原理簡析以及靜態和非靜態關係簡述

1.棧:函式中定義的基本型別變數以及物件的引用變數都是存在於棧中,當定義了一個變數後,就會在棧中為其分配記憶體空間,當這個變數的作用域結束後,就會釋放此變數的記憶體空間,以便另作他用。棧的優勢是,存取速度比堆要快,僅次於直接位於CPU中的暫存器。但存在棧中的資料

Java記憶體分配詳解(記憶體、棧記憶體、常量池)

  Java程式是執行在JVM(Java虛擬機器)上的,因此Java的記憶體分配是在JVM中進行的,JVM是記憶體分配的基礎和前提。Java程式的執行會涉及以下的記憶體區域: 1. 暫存器:JVM內部虛擬暫存器,存取速度非常快,程式不可控制。 2. 棧:存放

Java記憶體分配、棧和常量池)

Java記憶體分配主要包括以下幾個區域:1. 暫存器:我們在程式中無法控制2. 棧:存放基本型別的資料和物件的引用,但物件本身不存放在棧中,而是存放在堆中3. 堆:存放用new產生的資料4. 靜態域:存放在物件中用static定義的靜態成員5. 常量池:存放常量6. 非RAM

java可變引數總結

今天總結一下java中可變引數這個知識點。還是來看一個例子,現在我想寫個方法來計算兩個整形的和並且輸出,這個方法很簡單: public class KeBian { public static void main(String[] args) {

HotSpot虛擬機器在java中物件的分配、佈局和訪問

一.物件的建立 二.物件的記憶體佈局(一個物件在記憶體中是怎樣儲存的) 在HotSpot虛擬機器中,物件在記憶體中儲存的佈局可以分為3塊區域:物件頭、例項資料和對齊填充 HotSpot虛擬機器的物件頭包括兩部分資訊:第一部分是用於儲存物件自身的執行時資料,如雜湊碼、

深入JVM 原理(五)Java記憶體調整引數(調優關鍵)

目錄 堆記憶體的引數調整 通過之前的分析可以發現,實際上每一塊子記憶體區中都會存在有一部分的可變伸縮區,其基本流程: 如果空間不足,在可變的範圍之內擴大記憶體空間,當一段時間之後發現記憶體空間沒有這麼緊張的時候,再將可變空間進行釋放。所以在整個調整

記憶體的分配和棧分配 & 字元陣列,字元指標,Sizeof總結

文章轉載自:http://blog.csdn.net/SomnusLee1988/article/details/17251049 堆和棧的區別 一個由C/C++編譯的程式佔用的記憶體分為以下幾個部分1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,

Java架構學習(十二)java記憶體結構&新生代&老年代&JVM引數調優&記憶體引數配置&解決堆疊溢位

JVM引數調優與垃圾回收機制 一、java記憶體結構 Java記憶體模型:是多執行緒裡面的,jmm與執行緒可見性有關 Java記憶體結構:是JVM虛擬機器儲存空間。 Java記憶體結構圖 Java記憶體機構分為:方法區、java堆、棧、本地

Java虛擬機器探究】5.常用JVM配置引數-棧的分配引數

在使用JVM編譯java時,都會去設定相關的引數(例如使用eclipse的時候,可以設定eclipse的eclipse.ini檔案來對jvm做一些引數配置)。jvm的引數設定主要涉及到三種,分別是Trace跟蹤引數、堆的分配引數、棧的分配引數。本章主要講解棧的分配引數的相關資

JVM筆記4:Java記憶體分配策略及配置引數

簡單來說,物件記憶體分配主要是在堆中分配。但是分配的規則並不是固定的,取決於使用的收集器組合以及JVM記憶體相關引數的設定 以下介紹幾條基本規則(使用的ParNew+Serial Old收集器組合): 一,物件優先在新生代Eden區分配 //-XX:+UseParNew

c語言的一級指標和二級指標作為函式引數,連結串列,malloc中的分配等等總結

主要內容: 1、一級指標和二級指標 2、函式指標傳遞的例子 3、什麼時候需要傳遞二級指標? 4、二級指標在連結串列中的使用 1、一級指標和二級指標 一級指標:即我們一般說的指標,就是記憶體地址; 二級指標:指向指標的指標,就是地址的地址; 如: int a=

java記憶體分配(棧和的區別和聯絡)

Java 把記憶體劃分成兩種:一種是棧記憶體,另一種是堆記憶體。在函式中定義的一些基本型別的變數和物件的引用變數都是在函式的棧記憶體中分配,當在一段程式碼塊定義一個變數時,Java 就在棧中為這個變數分配記憶體空間,當超過變數的作用域後,Java 會自動釋放掉為該變數分配的記

Java執行緒池(ThreadPoolFactory)構造引數總結

今天看到關於執行緒池的一篇帖子,是關於面試時問到ThreadPoolFactory構造器時的一些問題,之前博主也學習過一些關於ThreadPoolFactory構造器的問題,但是一直沒有總結過,既然今天有時間,那麼就總結一下,避免有些同學走彎路(有些工作多年的老

使用 Memory Profiler 檢視 Java 和記憶體分配

Memory Profiler 是 Android Profiler 中的一個元件,可幫助您識別導致應用卡頓、凍結甚至崩潰的記憶體洩漏和流失。 它顯示一個應用記憶體使用量的實時圖表,讓您可以捕獲堆轉儲、強制執行垃圾回收以及跟蹤記憶體分配。 要開啟 Memory Profil

Java IO流學習總結

系統 指針 數組 rar amr redo 修改 接收 學習 Java IO流學習總結 Java流操作有關的類或接口: Java流類圖結構: 流的概念和作用 流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱為流,流