Чтобы получить память, используемую программой Java, и процент используемой кучи, мы можем реализовать это с помощью классов Java ManagementFactory и MemoryMXBean. Вот несколько подробных шагов:
1. Импортируйте необходимые классы:
В код Java сначала необходимо импортировать некоторые необходимые классы, чтобы иметь доступ к функциям управления памятью и мониторинга.
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
2. Получите экземпляр MemoryMXBean:
MemoryMXBean предоставляет методы и информацию для мониторинга использования памяти. Экземпляр MemoryMXBean можно получить с помощью следующего кода:
MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
3. Получите использование кучи памяти:
Используйте MemoryMXBean, чтобы получить информацию об использовании кучи. Память кучи разделена на две части: HeapMemoryUsage и NonHeapMemoryUsage. Здесь мы сосредоточимся на «HeapMemoryUsage», который содержит информацию об использовании кучи.
MemoryUsage heapMemoryUsage = memoryMXBean.getHeapMemoryUsage();
long usedHeapMemory = heapMemoryUsage.getUsed();
long maxHeapMemory = heapMemoryUsage.getMax();
double heapMemoryUsagePercentage = ((double) usedHeapMemory / maxHeapMemory) * 100.0;
В приведенном выше коде UsedHeapMemory указывает объем используемой памяти кучи, maxHeapMemory указывает максимальную емкость кучи, а heapMemoryUsagePercentage вычисляет процент использования памяти кучи.
4. Распечатайте результат:
Вы можете распечатать полученную информацию, чтобы просмотреть использование памяти и процент использования кучи Java-программы.
System.out.println("Used Heap Memory: " + usedHeapMemory + " bytes");
System.out.println("Max Heap Memory: " + maxHeapMemory + " bytes");
System.out.println("Heap Memory Usage Percentage: " + heapMemoryUsagePercentage + "%");
Полный пример кода выглядит следующим образом:
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
public class MemoryUsageExample {
public static void main(String[] args) {
MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
MemoryUsage heapMemoryUsage = memoryMXBean.getHeapMemoryUsage();
long usedHeapMemory = heapMemoryUsage.getUsed();
long maxHeapMemory = heapMemoryUsage.getMax();
double heapMemoryUsagePercentage = ((double) usedHeapMemory / maxHeapMemory) * 100.0;
System.out.println("Used Heap Memory: " + usedHeapMemory + " bytes");
System.out.println("Max Heap Memory: " + maxHeapMemory + " bytes");
System.out.println("Heap Memory Usage Percentage: " + heapMemoryUsagePercentage + "%");
}
}
Запустив приведенный выше код, мы получим объем памяти кучи, используемый программой Java, максимальную емкость кучи и процент использования памяти кучи. Обратите внимание, что здесь отслеживается только куча памяти, а другие типы памяти (например, память без кучи) также могут отслеживаться аналогичным образом.