본문 바로가기

NAVER D2 정리/Java

(3)
자바 애플리케이션 성능 튜닝의 도(道) 원문 작성일: 2012.10.25 원문: https://d2.naver.com/helloworld/184615 이 글에서는 성능 튜닝 작업의 상세한 내용보다는, 튜닝에 필요한 배경 지식 튜닝 순서 JVM의 각종 옵션 튜닝 접근 방법 등에 대한 간략한 소개를 통해 튜닝의 전반적인 흐름과 방법론에 대해 살펴본다. 어느 튜닝 방법을 선택하든 우선 자바 애플리케이션 수행 과정을 모니터링해야 한다. 그래서 이 글에서는 다음을 중심으로 살펴본다. 어떻게 모니터링을 하는가 어떻게 JVM 옵션을 주어야 하는가 코드 수정 필요 판단은 어떻게 하는가 자바 애플리케이션 성능 튜닝에 필요한 지식 1. JVM 동작 과정에 대한 이해가 필요하다. (크게 Garbage Collection(이하 GC)에 대한 것과 HotSpot에 ..
Java Garbage Collection 원문 작성일: 2011.12.22 원문: https://d2.naver.com/helloworld/1329 가비지 컬렉션 과정 - Generational Garbage Collection stop-the-world : GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것. sotp-the-world가 발생하면 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춤. GC 작업을 완료한 이후에야 중단했던 작업을 다시 시작. 어떤 GC 알고리즘을 사용하더라도 stop-the-world는 발생. 대개의 경우 GC 튜닝이란 이 stop-the-world 시간을 줄이는 것. Java는 프로그램 코드에서 메모리를 명시적으로 지정하여 해제하지 않는다. 해당 객체를 null로 지정하거나 System...
Java HashMap은 어떻게 동작하는가? 원문 작성일: 2014.07.04 원문: https://d2.naver.com/helloworld/831311 Java HashMap ? HashMap은 Java Collections Framework에 속한 구현체 클래스다. Java Collections Framework는 1998년 12월에 발표한 Java2에서 정식으로 선보였다. Map 인터페이스 자체는 Java5에서 Generic이 적용된 것 외에 처음 선보인 이후 변화가 없다. 하지만, HashMap 구현체는 성능을 향상시키기 위해 지속적으로 변화해왔다. 이 글의 내용은, 어떤 방식으로 HashMap 구현체의 성능을 향상시켰는가. Amortized Constant Time을 위하여 어떻게 해시 충돌(hash collision) 가능성을 줄이고 ..