Часто используемые параметры JVM

Опубликовано: 30 Ноября, 2021

JVM или виртуальная машина Java - это программная реализация физической машины, или мы можем сказать, что это абстрактная машина. Java была разработана с использованием концепции WORA (Write Once Run Anywhere), которая запускается на виртуальной машине. Это спецификация, которая дает среду выполнения, в которой часто выполняется java-байт-код. Компилятор компилирует файл Java в файл Java .class, затем этот файл .class вводится в JVM, которая загружает и выполняет файл класса.

JVM состоит из трех основных субъединиц

  1. Подсистема ClassLoader
  2. Область данных времени выполнения
  3. Механизм исполнения

Теперь давайте обсудим наиболее часто используемые параметры JVM, а именно 3:

  1. Размер кучи Java
  2. Уборщик мусора
  3. Печать GC

Параметр 1: размер кучи Java

Следующие три параметра JVM определяют начальный и максимальный размер кучи и размер стека потоков при запуске программ Java:

 -Xms - установить начальный размер кучи Java
 -Xmx - установить максимальный размер кучи Java
 -Xss - установить размер стека потока Java

Параметр 2: Сборщик мусора

Алгоритмы сборки мусора используются для повышения стабильности приложения. Сборка мусора отслеживает каждый объект, доступный в пространстве кучи JVM, и удаляет неиспользуемые.

Java предоставляет нам 4 способа реализовать сборку мусора, а именно:

  1. -XX:+UseSerialGC
  2. -XX:+UseParallelGC
  3. -XX:+USeParNewGC
  4. -XX:+UseG1GC

Пример:

Ява

// Class
// To test garbage collection
public class GFG {
// Method 1 - finalize()
// finalize() method is invoked each time
// before the "Test example garbage collection"
public void finalize(){System.out.println( "Test example garbage collection" );}
// Method 2
// Main driver method
public static void main(String args[]){
// Creating anonymous objects of
// GFG class in amin() method
GFG object1 = new GFG();
GFG object2 = new GFG();
// Assigning objects NULL references
object1 = null ;
object2 = null ;
// CAlling(invoking) garbage collection
// using gc() method
System.gc();
}
}

Выход:

 Тестовый пример сборки мусора
 Тестовый пример сборки мусора

Параметр 3: Печать GC

Эти параметры JVM позволяют вести журнал сбора мусора, что очень эффективно для операций, чувствительных к задержкам.

Используя следующие параметры, мы можем регистрировать активность сборщика мусора:

 -XX: + UseGCLogFileRotation 
-XX: NumberOfGCLogFiles = <количество файлов журнала> 
-XX: GCLogFileSize = <размер файла> [блок]
-Xloggc: /path/to/gc.log

Пример:

Ява

// Java Program to illustrate Print GC
public class Application {
private static Map<String, String> stringContainer = new HashMap<>();
public static void main(String[] args) {
System.out.println( "Start!" );
String stringWithPrefix = "Prefix" ;
// Load Java Heap with 3 M java.lang.String instances
for ( int i = 0 ; i < 3000000 ; i++) {
String newString = stringWithPrefix + i;
stringContainer.put(newString, newString);
}
System.out.println( "MAP size: " + stringContainer.size());
// Explicit GC!
System.gc();
// Remove 2 M out of 3 M
for ( int i = 0 ; i < 2000000 ; i++) {
String newString = stringWithPrefix + i;
stringContainer.remove(newString);
}
System.out.println( "MAP size: " + stringContainer.size());
System.out.println( "End" );
}
}

Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .