> Java > java지도 시간 > 자바와 사라지는 기억의 미스터리!

자바와 사라지는 기억의 미스터리!

Susan Sarandon
풀어 주다: 2024-11-04 10:56:02
원래의
734명이 탐색했습니다.

마법의 나라 자바랜드에는 JVM-bot이라는 작은 로봇이 살고 있었습니다. JVM-bot은 매우 중요한 임무를 수행했습니다: 메모리를 추적하는 것입니다! 문제는 Java Land의 기억은 커다란 쿠키 단지 같았고 모두가 그것을 원했습니다! 따라서 JVM-bot은 모두에게 충분한지 확인해야 했습니다.

매직 지표: totalMemory, freeMemory 및 maxMemory!

JVM-bot에는 세 가지 특수 표시기가 있습니다. 즉, 모든 메모리를 모니터링하는 도구입니다.

Java и Тайна Исчезающей Памяти!

totalMemory - 이 표시기는 JVM-bot이 이미 보유하고 있는 쿠키(또는 메모리) 수를 보여줍니다. 이 방법은 JVM이 할당한 현재 메모리 양을 표시하며, 이는 현재 로드를 이해하는 데 유용합니다. 기본적으로 totalMemory는 우리가 이미 주머니에 가지고 있는 사용 가능한 메모리 "예산"입니다.
freeMemory - 이것은 그의 병에(그가 이미 갖고 있는 기억에) 쿠키가 몇 개나 남아 있는지를 알려줍니다. 이 방법은 totalMemory 내에서 계속 사용할 수 있는 메모리 양을 보여줍니다. 예를 들어 totalMemory가 500MB이고 freeMemory가 200MB인 경우 이는 300MB가 이미 사용되었음을 의미합니다. 이 방법은 현재 사용 가능한 메모리의 양과 최적화를 고려해야 할 시기를 이해하는 데 도움이 됩니다.
maxMemory - 그리고 이것은 가장 큰 지표입니다! JVM-bot이 가질 수 있는 최대 쿠키 수를 보여주었습니다. 가득 차면 쿠키를 더 추가할 수 없습니다! 예를 들어 최대값을 1024MB로 설정한 경우 이것이 상한이며, 이에 도달하면 JVM은 가상 쿠키(메모리)를 사용하기 시작하므로 성능이 눈에 띄게 저하됩니다.
다음은 JVM-bot이 이러한 표시기를 사용할 수 있는 방법을 보여주는 코드 예제입니다.

public class MemoryExample {
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();

        // Получаем текущую память
        long totalMemory = runtime.totalMemory(); // Общее количество памяти
        long freeMemory = runtime.freeMemory();   // Свободная память
        long maxMemory = runtime.maxMemory();     // Максимально доступная память

        System.out.println("Общая память: " + totalMemory + " байт");
        System.out.println("Свободная память: " + freeMemory + " байт");
        System.out.println("Максимальная память: " + maxMemory + " байт");
    }
}

로그인 후 복사
로그인 후 복사
로그인 후 복사

JVM-bot은 자신을 쿠키(메모리) 수호자로 생각하고 지표를 사용하여 남겨진 귀중한 부스러기를 감시하는 것을 좋아했습니다.

항목: 장난스러운 알고리즘 그렘린!

어느 화창한 날, JVM-bot은 자신의 일에 전념하며 지표를 모니터링하고 있었는데, 갑자기... BAM! 민첩하고 작은 알고리즘 그렘린이 많이 등장했습니다! 이 그렘린들은 JVM-bot만큼 쿠키를 사랑했고 배가 고팠습니다!

그들은 JVM-bot 쿠키를 여기저기서 한입씩 먹어치우기 시작했습니다. JVM-bot의 freeMemory 지표는 그렘린이 쿠키를 먹은 이후 급격히 떨어지기 시작했습니다!

Java и Тайна Исчезающей Памяти!

"안돼!" JVM-봇이 자신의 로봇 머리를 문지르며 외쳤습니다. "이 그렘린들이 쿠키를 너무 많이 먹으면 자바랜드에 남은 쿠키가 부족할 것 같아요!"

Gremlin 식욕 측정

JVM-bot에는 훌륭한 아이디어가 있습니다! 그는 기억력 측정기를 사용하여 그렘린이 얼마나 많은 쿠키를 먹는지 확인합니다.

JVM-bot은 먼저 freeMemory를 조사하여 그렘린이 잔치를 시작하기 전에 남은 쿠키 수를 확인했습니다.

long initialFreeMemory = runtime.freeMemory();
System.out.println("Свободная память перед едой гремлинов: " + initialFreeMemory + " байт");

로그인 후 복사

그러자 그는 "좋아, 그렘린스, 네가 무엇을 할 수 있는지 보자!"라고 말했습니다. 쿠키를 물어뜯으며 자유롭게 뛰놀게 해주세요.

그렘린이 식사를 마친 후 JVM-bot이 freeMemory를 다시 확인했습니다.

long remainingFreeMemory = runtime.freeMemory();
System.out.println("Свободная память после еды гремлинов: " + remainingFreeMemory + " байт");

로그인 후 복사

마지막으로 JVM-bot은 누락된 쿠키 수를 파악하기 위해 계산을 수행했습니다. 그렘린들이 삼킨 추억이었어요!

long consumedMemory = initialFreeMemory - remainingFreeMemory;
System.out.println("Съеденная память: " + consumedMemory + " байт");

로그인 후 복사

슈퍼 메모리 표시기 JVM-bot!

모든 것을 추적하기 위해 JVM-bot은 자체적으로 메모리 표시기를 구축했습니다! 색깔이 있는 부분이 있는 쿠키 항아리처럼 보였습니다.

이미 먹은 쿠키는 녹색(메모리 사용)
파란색은 항아리에 아직 안전한 쿠키입니다(여유 메모리).
절대 구워지지 않는 쿠키는 회색(최대 메모리)
이렇게 하면 JVM-bot이 모든 것을 감시하고 더 많은 쿠키를 구울 시간이 언제인지 알 수 있습니다!

큰 빨간 버튼 "GC" - JVM-bot의 비밀병기!

Java и Тайна Исчезающей Памяти!
그리고 마지막으로 JVM-bot에는 GC(물론 Garbage Collection의 약자)라고 적힌 커다란 빨간색 버튼이 있습니다. 이것은 그의 비상 쿠키 껍질 벗기기 도구였습니다. 일이 감당할 수 없을 만큼 커지고 그렘린이 부스러기를 여기저기 남기고 있다면 JVM 봇은 그 버튼을 누르고 으악! - 모든 부스러기가 사라져 JVM-bot에 다시 깨끗하고 신선한 메모리가 남습니다.

가비지 수집기를 호출하는 예제 코드:

public class MemoryExample {
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();

        // Получаем текущую память
        long totalMemory = runtime.totalMemory(); // Общее количество памяти
        long freeMemory = runtime.freeMemory();   // Свободная память
        long maxMemory = runtime.maxMemory();     // Максимально доступная память

        System.out.println("Общая память: " + totalMemory + " байт");
        System.out.println("Свободная память: " + freeMemory + " байт");
        System.out.println("Максимальная память: " + maxMemory + " байт");
    }
}

로그인 후 복사
로그인 후 복사
로그인 후 복사

JVM-bot의 팁: 메모리 그렘린을 제어하는 ​​방법!

메모리를 안전하게 유지하기 위해 JVM-bot에는 몇 가지 트릭이 있습니다.

  • 추가 부스러기가 생기지 않도록 측정하기 전에 GC 버튼을 누르세요. 측정하기 전에 이물질을 제거하면 보다 정확한 결과를 얻는 데 도움이 됩니다. 물론 항상 필요한 것은 아니지만 측정 정확도에 유용합니다.

  • 너무 자주 측정하지 마세요! JVM-bot은 정말로 필요한 경우에만 측정합니다(루프에서 측정하지 않음). 그렇지 않으면 해당 표시기가 마모될 수 있습니다. 런타임을 통해 메모리에 너무 자주 액세스하면 약간의 지연이 발생할 수 있습니다. 대신 알고리즘의 시작과 끝에서 단일 측정을 수행하세요.

  • 모든 사람이 이해할 수 있도록 메가바이트(MB)와 같은 친숙한 단위를 사용하세요.

알고리즘의 메모리 소비를 측정하는 방법은 무엇입니까?

Java и Тайна Исчезающей Памяти!
알고리즘과 같은 특정 코드 조각이 메모리를 얼마나 차지하는지 측정하려면 다음과 같은 약간의 트릭이 필요합니다.

코드를 실행하기 전 초기 메모리를 측정합니다.
우리는 알고리즘을 실행합니다.
실행 후 메모리를 측정합니다.
우리는 측정값의 차이를 찾습니다.
아래 코드 예제는 이를 수행하는 방법을 보여줍니다.

public class MemoryExample {
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();

        // Получаем текущую память
        long totalMemory = runtime.totalMemory(); // Общее количество памяти
        long freeMemory = runtime.freeMemory();   // Свободная память
        long maxMemory = runtime.maxMemory();     // Максимально доступная память

        System.out.println("Общая память: " + totalMemory + " байт");
        System.out.println("Свободная память: " + freeMemory + " байт");
        System.out.println("Максимальная память: " + maxMemory + " байт");
    }
}

로그인 후 복사
로그인 후 복사
로그인 후 복사

그래서 JVM-bot은 Java Land의 영웅이 되어 아무리 많은 그렘린이 쿠키를 먹으려고 해도 모두를 위해 쿠키(또는 메모리)를 보호합니다. 기억하세요: JVM-bot과 그 메모리 표시기를 사용하면 Java Land의 모든 사람에게 항상 충분한 쿠키가 있을 것입니다! ?

위 내용은 자바와 사라지는 기억의 미스터리!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿