먼저 JVM이 뭔지 알아보자.

JVM은 Java Virtual Machine의 약자로 한국말로하면 자바 가상 머신을 의미한다.

쉽게 말하면 자바로 만들어진 클래스 파일을 번역해서 수행하는 소프트웨어라고 생각하면 된다. 자세한 내용은 아래 링크를 참조하면 된다. (JVM의 스펙에 대한 내용이라 열나 어렵긴 할 것이다.)

http://java.sun.com/docs/books/jvms/


그렇다면Hotspot은 뭘까 ??? 

Hotspot은 VM의 한 종류라고 보면된다. 이게 나오기 전의 VM을 보통 클래식 VM 이라고 부르며, Hotspot에 대해서 한 마디로 설명하면 다음과 같다.(출처 : http://kr.sun.com/software/opensource/faq.html#b11)

Q :
자바 HotSpot 가상머신은 무엇이고, 개발자들은 이 컴포넌트로 무엇을 할 수 있나요?
A :
자바 HotSpot은 일종의 자바 가상머신의 구현으로, 자바 HotSpot VM에는 다음과 같은 자바 플랫폼을 위한 핵심 실행 엔진이 포함됩니다:
  • 자바 바이트코드를 지원 하드웨어 플랫폼 상에서 최적화된 네이티브 기계어 코드로 변환하는 동적 컴파일러
  • 메모리 관리 및 가비지 컬렉션 서브시스템
  • 스레드 및 동기화
  • 모니터링, 디버깅, 프로파일링 텔레메트리(profiling telemetry)
  • 바이트코드 검사기(bytecode verifier)를 포함한 자바 보안 아키텍처 부분들

HotSpot은 그 자체가 “일단 한번 작성하면 어디서든 실행된다(Write Once, Run Anywhere)”라는 자바 기술의 약속을 가장 구체적으로 실현한 Java SE 플랫폼 컴포넌트라 할 수 있습니다.

개발자들은 이 코드를 통해 세계 최고 수준의 가상머신이 어떻게 구축되는지 살펴볼 수 있을 뿐 아니라, 버그 픽스, 그리고 새로운 가비지 컬렉션, 동기화, 바이트코드 컴파일러 알고리즘의 테스트, VM을 새로운 하드웨어 아키텍처와 운영체제에 이식하는 등의 작업을 수행할 수 있게 됩니다.


Hotspot 에 대해서는 아래 링크를 참조하는 것이 가장 쉬울 것이다.

http://java.sun.com/javase/technologies/hotspot/index.jsp

그리고, Hotspot  VM을 튜닝하기 위한 옵션은 아래의 링크를 참조하면 된다.

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

다음에는 개발툴에 대해서 알아 보자.

Posted by tuning-java