Category: JAVA

0

[JAVA] - Cold Start

목차 [JAVA] - 가비지 컬렉션 튜닝 [JAVA] - Garbage Collection(가비지 컬렉션) [JAVA] - JVM (자바 가상 머신) 🧊 Cold Start란?Cold Start는 JVM이 애플리케이션이 처음 실행될 때 초기화 과정 때문에 발생하는 지연(latency) 을 의미합니다. 마치 추운 겨울날 자동차 시동을 걸 때 엔진이 따뜻해질 때까지 시간이 걸리는 것과 비슷합니다. 일반적인 서버 환경에서는 애플리케이션이 한 번 시작되면 계속 실행되기 때문에 이 문제가 크게 부각되지 않았습니다. 하지만 MSA 는 인스턴스가 빈번히 생성 및 소멸되고 여러 서버가 긴밀히 통신하는 환경입니다. 이로 인해 특정 시스템이 재부팅되면 연결된 다른 시스템의 응답 속도까지 지연되는 문제가 발생했으며, 무중단 배포·잦은 배포·오토스케일링 등으로 인해 기존 아키텍처보다 성능 지연 현상이 더 빈번하게 나타나게 되었고, 전체적인 서비스 성능 이슈의 문제가 됐습니다. 🚦 Cold Start가 발생하는 이유Java 애플리케이션은 네이티브 코드가 아닌 JVM 위에서 바이트코드 실행 방식으로 동작하기 때문에, 첫 실행 시 다음과 같은 과정에서 오버헤드가 발생합니다. 1. JVM 초기화 과정의 복잡성Java 애플리케이션이 시작될 때 여러 단계의 초기화 과정을 거쳐야 합니다:

0

[JAVA] - 가비지 컬렉션 튜닝

목차 [JAVA] - 가비지 컬렉션 튜닝 [JAVA] - Garbage Collection(가비지 컬렉션) [JAVA] - JVM (자바 가상 머신) 참고 https://d2.naver.com/helloworld/37111 가비지 컬렉션 튜닝 전체적으로 GC(Minor GC + Major GC) 가 적게 발생하기 위해서는 우선적으로 객체를 적게 생성하면 된다. Old Generation 으로 넘어가는 객체의 수 최소화 (횟수) Full GC 시간 줄이기 (영역) 1. Old Generation 으로 넘어가는 객체의 수 최소화New Generation 의 경우 Old Generation 영역보다 작기 때문에 상대적으로 Stop The World 가 작게 발생한다.

0

[JAVA] - Garbage Collection(가비지 컬렉션)

목차 [JAVA] - 가비지 컬렉션 튜닝 [JAVA] - Garbage Collection(가비지 컬렉션) [JAVA] - JVM (자바 가상 머신) 📌 가비지 컬렉션 동적 할당 받은 메모리 중에서 사용하지 않는 메모리를 해제해 메모리 누수를 막는 메모리 관리 기법 GC 가 등장하기 전에는 개발자가 직접 메모리를 할당하거나 해제해줘야 했습니다. 메모리를 직접관리하기 때문에 실수로 메모리 memory leak 을 없앨 수 있다. GC Root가 될 수 있는 대상들 Stack 영역의 데이터 Static 데이터 JNI에 의해 생성된 객체들 Mark And Sweep 알고리즘

0

[JAVA] - JVM (자바 가상 머신)

목차 [JAVA] - 가비지 컬렉션 튜닝 [JAVA] - Garbage Collection(가비지 컬렉션) [JAVA] - JVM (자바 가상 머신) JVM (자바 가상 머신) 자바 컴파일러에 의해 생성된 자바 바이트 코드(.class) 를 OS에 맞는 기계어로 변환해 실행할 수 있게 해준다.클래스 파일로 떨어질 수 있으면 어떤 언어라도 실행이 가능하다. (ex. kotlin) 자바 컴파일러에 의해 생성된 바이트 코드를 실행하는 표준이자 구현체다. JVM은 각 OS(운영체제) 에 맞게 설계가 돼 있다. 자바 바이트 코드만 있으면 JVM을 이용해 어느 운영체제에서나 실행이 가능하다. Stack 기반 가상 머신 JVM 구조 Class Loader, Memory, 실행 엔진(Execution Engine) 이 세가지로 구성 돼 있다.