복붙노트

[SPRING] 힙 메모리 사용량과로드 된 클래스 수가 계속 증가하는 이유는 무엇입니까?

SPRING

힙 메모리 사용량과로드 된 클래스 수가 계속 증가하는 이유는 무엇입니까?

JVM Explorer - JVM Explorer 링크를 사용하여 Spring 애플리케이션을 프로파일 링합니다. 나는 그것에 대해 다음과 같은 질문을 가지고있다.

가비지 수집 절차 완료 후 신청서에 일부 요청을 보낸 후 - 이미지 확대

해결법

  1. ==============================

    1.JVM에서 오브젝트를 작성하는 중입니다. 이 일을하는 데 메모리 프로파일 러가 필요합니다. Swing 또는 yoru 응용 프로그램 또는 다른 라이브러리의 일부일 수 있습니다.

    JVM에서 오브젝트를 작성하는 중입니다. 이 일을하는 데 메모리 프로파일 러가 필요합니다. Swing 또는 yoru 응용 프로그램 또는 다른 라이브러리의 일부일 수 있습니다.

    BTW 대부분의 프로파일 링 도구는 많은 쓰레기를 처리하는 JMX를 사용합니다. 예 : 일부 응용 프로그램에서 FlightRecorder 또는 VisualVM을 실행하면 JMX 모니터링이 대부분의 가비지를 생성하고 있음을 보여줍니다.

    객체를 만드는 것이 무엇이든 여전히 객체를 생성하고 있습니다.

    클래스가 느슨하게로드됩니다. 어떤 수업을 듣기 전까지는 수업이 필요하지 않습니다.

    그렇습니다. 그렇다고해서 더 많은 수업이 필요하지는 않습니다.

    응용 프로그램이 더 많은 작업을 수행하고 있습니다.

    응용 프로그램이 어떤 작업을하는지 알지 못한다면 VisualVM 또는 Flight Recorder와 같은 메모리 프로파일 러를 사용하는 것이 좋습니다. 이런 종류의 질문에 YourKit을 사용합니다.

    참고 : Java 프로그램을 조정하여 가비지를 생성하지 않도록 노력해야하며 대부분의 라이브러리는 알려진 성능 문제를 일으키는 경우에만 가비지를 줄이려고합니다.

  2. ==============================

    2.나는 @ PeterLawrey의 좋은 대답을 좋아하지만, 거기에는 이것이 빠져있다.

    나는 @ PeterLawrey의 좋은 대답을 좋아하지만, 거기에는 이것이 빠져있다.

    메모리는 사용하지 말고 사용할 수 없습니다. 작은 메모리로도 작업 할 수 있고 필요한 모든 것을 다시 만들 수 있지만 시스템에 많은 메모리와 응용 프로그램이 있다는 사실을 효과적으로 활용할 수도 있습니다 가능한 모든 메모리를 사용하여 훨씬 효율적으로 작동합니다.

    메모리를 계속 차지하는 것은 캐시와 같은 것이라고 쉽게 생각할 수 있습니다. 캐시에 많은 양의 데이터가 포함되어 있으면 응용 프로그램이 더 빠르게 작동합니다.

    OutOfMemoryError와 같은 문제가 없다면 반드시 걱정할 필요가 없습니다. 당신은 여전히주의를 기울여 더 자세히 조사해야하지만 설명 된 상황이 자동으로 무언가가 잘못되었다는 것을 의미하지는 않습니다.

    그것은 "더 많은 메모리를 구입했지만 Windows는이 모든 것을 사용합니다"라는 Windows 사용자의 끊임없는 애도와 유사합니다. 메모리가 사용될 때 좋습니다! 그게 우리가 사는거야!

  3. from https://stackoverflow.com/questions/31108772/why-do-heap-memory-usage-and-number-of-loaded-classes-keep-increasing by cc-by-sa and MIT license