Основным исследованием в этой статье является соответствующее содержание подробного объяснения настроек флага в JVM, которое представлено следующим образом.
-Xmx3550M: установите максимальную доступную память JVM до 3550M.
-XMS3550M: установите начальную доступную память JVM до 3550M.
-Xmn2g: установите размер молодого поколения на 2G.
-Xss128k: установите размер стека каждого потока на 128K
-Xx: newsize = 4: Установите размер молодого поколения на 4
-Xx: Newratio = 4: установите соотношение молодого поколения (включая Eden и две области выживших) к старому поколению (за исключением постоянного поколения) к 4, затем отношение молодого поколения к старому поколению составляет 1: 4, а молодое поколение составляет 1/5 всего стека
-Xx: Survivivorratio = 4: Устанавливает соотношение размера между области Eden и областью выжившего в молодом поколении. Установлен 4, соотношение между двумя областями выживших и одной областью Eden составляет 2: 4, а одна область выживших составляет 1/6 всего молодого поколения.
-Xx: maxpermsize = 16M: установите постоянный размер генерации на 16 м.
-Xx: претензиизризметологии = n, объекты, больше n, помещаются непосредственно в старость
-Xx: maxtenuringthreshold = 0: установить максимальный возраст мусора. Если установить на 0, объект молодого поколения не пройдет через область выжившего и напрямую войдет в старое поколение.
-Xx:+useparalleloldgc: настроить метод сбора мусора старого поколения для параллельной коллекции.
Вся размер кучи = размер молодого поколения + размер старого поколения + постоянный размер генерации.
-Xx:+userialgc: установить серийный коллекционер
-Xx:+useparallgc: установить параллельный коллекционер
-Xx:+UseparalledLoldgc: настроить параллельный коллекционер старого поколения
-Xx:+useconcmarksweepgc: настроить одновременный коллекционер
-Xx:+printgc
-Xx:+printgcdetails
-Xx:+printgctimestamps
-Xloggc: имя файла
-Xx: parallelgcthreads = n: установите количество процессоров, используемых при сборе параллельного коллекционера. Количество потоков, собранных параллельно.
-Xx: maxgcpausemillis = n: установите максимальное время паузы для параллельной коллекции
-Xx: gctimeratio = n: установите процент времени сбора мусора для программирования времени работы. Формула 1/(1+n)
-Xx:+cmsincrementalMode: установить в инкрементный режим. Это подходит для отдельных ситуаций с процессором.
-Xx: parallelgcthreads = n: установите количество процессоров, используемых, когда молодое поколение одновременного коллекционера является параллельной коллекцией. Количество потоков, используемых в параллельной коллекции.
Предположим, есть файл с именем testmem.java
Javac testmem.java java -verbose: gc -xms20m -xmx20m -xmn10m -xx:+printgcdetails -xx: survivororratio = 8 testmeme
-Xms20m: начальный размер кучи Java в JVM составляет 20 м. (Включая новое поколение и пожилых людей)
-Xmx20m: максимальный размер кучи Java в JVM составляет 20 м, что означает, что он не является масштабируемым. (Включая новое поколение и пожилых людей)
-Xmn10m: размер нового поколения составляет 10м.
-Xx:+printgcdetails: печатная информация GC
-Xx: survivororratio = 8: пространственное соотношение одного конца к одной области выжившего в новом поколении составляет 8: 1, а затем соотношение двух областей выжившего к одной области Eden 2: 8, а одна область выживших учитывает 1/10 всего молодого поколения.
Узнав приведенную выше информацию о флаге, мы можем получить следующую информацию:
Общий размер кучи Java составляет 20 м = 20 * 1024K = 20480K
Размер генерации Ceponys: 10m = 10 * 1024K = 10240K
Пространство Eden: 10240K * 8/10 = 8192K
Из пространства: 10240K * 1/10 = 1024K
к пространству: 10240K * 1/10 = 1024K
Размер старости: 20 м - 10 м = 10m = 10240K
Выше приведено подробное объяснение настройки флага в JVM в этой статье, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!