반응형 GC3 Chapter 6. 프로파일링 기법으로 리소스 사용 문제 파악하기 프로파일러는 다양한 난관에 봉착했을 때 앱이 이상하게 작동되는 근본 원인을 밝혀내는 강력한 도구다.프로파일러는 실행 중인 JVM 프로세스를 가로채서 다음과 같이 유용한 세부 정보를 제공한다. CPU와 메모리 같은 리소스가 앱에서 어떻게 소비되는가?실행 중인 스레드와 그 현재 상태는 어떤가?실행 중인 코드 및 특정 조각에서 사용하는 리소스(예: 메서드별 실행 시간)는 무엇인가? 1. 프로파일러는 어떤 경우에 유용할까? 프로파일링 도구가 도움이 되는 상황을 세 가지 정도 꼽아보면 이렇다. 비정상적인 리소스 사용량 식별코드의 어느 부분이 실행되는지 찾기앱 실행 속도가 저하되는 문제 파악 1.1 비정상적인 리소스 사용량 식별 프로파일러는 대개 앱이 CPU와 메모리를 어떻게 소비하는지 파악하는 용도로 쓰인다.앱이.. 독서/자바 잘 읽는 법 2024. 11. 22. GC (Garbage Collection) 오늘은 GC에 대해 공부를 진행해보겠습니다. Stop The World stop-the-world는 GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. stop-the-world가 발생하면 GC를 실행하는 스레드를 제외한 나머지 스레드는 모두 작업을 멈춘다. GC 작업을 완료하 이후에야 중단했던 작업을 다시 시작한다. 어떤 GC 알고리즘을 사용하더라도 stop-the-world는 발생한다. 대개의 GC 튜닝은 stop-the-world 시간을 줄이는 것이다. GC 자바에서는 개발자가 프로그램 코드로 메모리를 명시적으로 해제하지 않기 때문에 Garbage Collector가 더 이상 필요 없는 객체를 찾아 지우는 작업을 한다. 필요 없는 객체란 유효한 참조가 없어진 객체다. 즉 JNI 스택에.. 개발/Java 2023. 12. 11. 자바 메모리 누수 c언어는 free() 함수를 사용해 메모리를 해제한다. 자바는 GC가 더 이상 사용하지 않는 힙 영역의 인스턴스 메모리를 알아서 해제해준다. 그렇다면 GC가 메모리를 해제해주므로 자바에서 메모리 누수는 아예 발생하지 않을까?? 결론부터 말하면 자바에서도 메모리 누수는 발생할 수 있다. 객체가 실제로 사용되지 않으면서 의도치 않게 참조를 가지고 있다면, 이는 메모리 누수의 원인이 된다. 자바에서 메모리 누수는 프로그래머의 실수로 발생하는 것이다. 자바 메모리 누수와 관련해서 자주 발생하는 패턴을 살펴보기 전에 먼저 GC 대상에 대한 기초를 잡자. GC 대상 GC는 힙 내의 객체 중에서 가비지를 찾아내고, 찾아낸 가비지를 처리해서 힙의 메모리를 회수한다. 그럼 어떤 객체가 가비지일까?? Java GC는 객체.. 개발/Java 2023. 12. 9. 이전 1 다음 반응형