2024/09 5

[JVM] Java Virtual Machine

자바 가상 머신(Java Virtual Machine, JVM)은 시스템 메모리를 관리하면서 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공한다. JVM의 2가지 기본 기능자바 프로그램이 어느 기기, 또는 어느 운영체제 상에서도 실행될 수 있게 하는 것("한번 작성해, 어디에서나 실행")프로그램 메모리를 관리하고 최적화 하는 것JVM의 정의기술적 정의 : 코드를 실행하고 해당 코드에 대해 런타임 환경을 제공하는 소프트웨어 프로그램에 대한 사양일반적 정의 : 자바 프로그램을 실행하는 방법. JVM의 설정에 따라 실행 중에 프로그램 리소스를 관리라이선스가 부여되는 거의 모든 JVM은 오픈 JDK, 핫스팟 JVM의로 포크(Fork)로 생성된 것 JVM 구조Java compiler는 .java 파일..

JAVA 2024.09.22

[OOM] Out Of Memory 분석 방법(with JProfiler(유료))

시스템 성능, 메모리 사용량, 잠재적 인 메모리 누수 및 스레드 프로파일 링을 볼 수 있는 인터페이스를 제공로컬 및 원격 응용 프로그램 모두에 사용원격 컴퓨터에서 실행중인 Java 응용 프로그램을 설치할 필요없이 프로필 작성코드 일부 수정(이유: 실행 즉시 dump 파일 생성으로 온라인 연결 불가)import java.util.ArrayList;import java.util.List; public class OutOfMemoryExample {    public static void main(String[] args) {        List memoryLeak = new ArrayList();        try {            while (true) {                // Crea..

JAVA 2024.09.22

[OOM] Out Of Memory 분석 방법(with VisualVM)

Java 응용 프로그램 프로파일 링 도구Java Development Kit (JDK)에 번들로 제공1. 다운로드 경로 : https://visualvm.github.io/download.html VisualVM: DownloadFirst Steps Unzip the downloaded archive. The archive already contains the top-level visualvm directory. Start VisualVM by invoking the binary appropriate for your OS:visualvm\bin\visualvm.exe or visualvm/bin/visualvm You may provide additional options tovisualvm.github..

JAVA 2024.09.22

[OOM] Out Of Memory 분석 방법(with MAT)

heap dump 생성 및 분석 1. 샘플 파일 생성(OutOfMemoryExample.java)import java.util.ArrayList;import java.util.List; public class OutOfMemoryExample {    public static void main(String[] args) {        List memoryLeak = new ArrayList();        while (true) {            memoryLeak.add(new Object()); // Continuously adding objects to the list        }    }} 2. 컴파일(OutOfMemoryExample.class 생성)javac OutOfMemoryE..

JAVA 2024.09.20

[아키텍처] Publish Subscribe Style

1. 개요Summary송신자와 수신자를 연결하지 않고도 여러 관심 소비자에게 비동기적으로 이벤트를 알릴 수 있다.Context클라우드 기반 및 분산형 애플리케이션에서 시스템 구성 요소는 이벤트가 발생할 때 다른 구성 요소에 정보를 제공해야 하는 경우가 많습니다.Problem비동기 메시징은 발신자와 소비자를 분리하고 발신자가 응답을 기다리지 못하도록 차단하는 효과적인 방법입니다. 그러나 각 소비자에 대한 전용 메시지 큐를 사용하면 많은 소비자에게 효과적으로 확장되지 않습니다. 또한 일부 소비자는 정보의 하위 집합에만 관심이 있을 수 있습니다.발신자는 신원을 알지 못한 채 모든 관심 있는 소비자에게 이벤트를 어떻게 알릴 수 있을까요?Solution발신자가 사용하는 입력 메시징 채널. 발신자는 알려진 메시지 ..

아키텍처 2024.09.04