Часто используемые параметры JVM
JVM или виртуальная машина Java - это программная реализация физической машины, или мы можем сказать, что это абстрактная машина. Java была разработана с использованием концепции WORA (Write Once Run Anywhere), которая запускается на виртуальной машине. Это спецификация, которая дает среду выполнения, в которой часто выполняется java-байт-код. Компилятор компилирует файл Java в файл Java .class, затем этот файл .class вводится в JVM, которая загружает и выполняет файл класса.
JVM состоит из трех основных субъединиц
- Подсистема ClassLoader
- Область данных времени выполнения
- Механизм исполнения
Теперь давайте обсудим наиболее часто используемые параметры JVM, а именно 3:
- Размер кучи Java
- Уборщик мусора
- Печать GC
Параметр 1: размер кучи Java
Следующие три параметра JVM определяют начальный и максимальный размер кучи и размер стека потоков при запуске программ Java:
-Xms - установить начальный размер кучи Java -Xmx - установить максимальный размер кучи Java -Xss - установить размер стека потока Java
Параметр 2: Сборщик мусора
Алгоритмы сборки мусора используются для повышения стабильности приложения. Сборка мусора отслеживает каждый объект, доступный в пространстве кучи JVM, и удаляет неиспользуемые.
Java предоставляет нам 4 способа реализовать сборку мусора, а именно:
- -XX:+UseSerialGC
- -XX:+UseParallelGC
- -XX:+USeParNewGC
- -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 и многому другому, см. Полный курс подготовки к собеседованию .