엑셈에서 유료로 진행되는 Java Performance Fundamental 교재를 공유하기로 하였습니다. 세미나에 참석하셨던 분들의 요청이 가장 큰 동기였습니다. 그러나 책을 출간하고 나서 책의 내용을 요약하여 포스팅하는 작업이 계속 밀리더라구요. 요즘 관심사가 좀 다른데 있어서 말입니다. 그래서 PDF로 공유하는 것보다 PT도 가능한 형태로 공유하기 위해 이러한 방식을 사용하였습니다. 이 교재 내용은 제가 쓴 Java Performance Fundamental이라는 책을 바탕으로 한 것이기 때문에 자세한 설명을 원하시면 책을 참고하시는 방법도 있습니다. 책을 쓴 목적도 자바, WAS성능의 근간을 이루는 JVM의 내부 구조를 파악하기 위한 것이었고 이 지식은 Java개발자, 운영자 분들이 모두 습득하시..
Hotspot JVM이란 Hotspot Compiler를 사용하는 Sun, HP, Oracle에서 배포하는 JVM을 말한다. 이 Hotspot JVM의 Heap Object Layout은 왼편의 그림과 같다. Heap에는 Object와 Array만이 존재하는데 Hotspot JVM의 경우 Object는 Header가 2개, Array에는 Header가 3개 존재한다. Array도 사실은 Object의 Layout에 Array Size를 알려주는 Header만 하나 더 추가된 셈이다. 각 Header는 1Word의 크기를 가지며 1 Word란 32 bit머신에서는 32bit의 크기를 가지게 되고 63 bit머신에서는 64 bit의 크기를 가진다. 첫번째 Word인 Mark Word는 Garbage Coll..
IBM JVM의 Heap은 Java5에 와서 그 구조가 달라지기 시작하였다. Java 1.4.2 버전까지는 One-Heap 구조로 고수하다가 Java 5에서는 Hotspot JVM 처럼 Generational Heap 구조를 사용할 수 있게 되었다. One Heap구조는 아래의 그림과 같이 구성되어 있다. Heapbase라고 하는 Heap의 처음 주소에서부터 Heaptop 까지 확장이 가능하며 가변크기일 경우 현재까지 할당된 부분을 Heaplimit라고 한다. Kcluster는 Pinned Class Object가 할당되는 곳으로 Default 1280개의 class entries가 저장이 가능하다. 1개의 Class Entry는 300byte(32it), 560byte(64bit)를 의미한다. Pclu..
Java Virtual Machine은 Java를 실행하기 위한 핵심적인 위치를 차지한다. 그러나 Java Virtual Machine의 실체는 사실 없다. JVM은 하나의 스펙 또는 약속된 개념에 지나지 않기 때문이다. JVM이 모든 구현은 이 스펙을 보고 Vendor에서 알아서 한다. 하지만 이 스펙에 어떻게 구현하라는 명시적인 이야기는 담겨져 있지 않다. 대부분 어때야 한다 정도의 정의만이 있을 뿐이다. JVM은 여러개의 모듈로 구성된다. 우리가 Java 프로그램을 실행시키기 위해서는 JVM안으로 Class 파일을 불러 들여야 한다. 이러한 작업을 하는 것이 Class Loader System이다. 이렇게 Loding된 class는 Execution Engine을 통해 해석되어 Runtime Da..
Oracle 성능을 하다가 Java 성능으로 영역을 확장하면서 힘들었던 것은 무엇을 공부해야 할지를 정하는 것이었다. Java라는 것이 용어부터 너무도 많고 기술도 너무 많았기 때문에 이것 저것 하다보면 남는 것도 없이 분주하기만 할 뿐이었다. WAS 벤더들의 교육을 찾아 다녀도 마찬가지였다. 자신들의 WAS에 특화된 부분에 대해서 얘기를 듣다보면 성능 문제를 일으키는 근본적인 요소들에 대해서는 잘 파악이 되지 않았던 것이다. 그래서 마늘과 쑥을 가지고 동굴로 들어간 곰과 호랑이 처럼 파묻혀 고민을 하던 차에 갑자기 눈앞이 밝아짐을 느꼈다. 자바는 어떤 것이든 JVM위에서 움직이게 되고 WAS라 할지라도 JVM의 입장에서 보면 하나의 어플리케이션에 지나지 않는다는 것과 시스템 입장에서 JVM은 하나의 프..
- Total
- 403,527
- Today
- 5
- Yesterday
- 14
- 구글
- SNS
- 전자책
- ebook
- 빅데이터
- 애플
- 소셜네트워크
- 스티브잡스
- bigdata
- jvm internal
- 아이패드
- 앱스토어
- 트위터
- 안드로이드
- 아이폰
- garbage collection
- 소셜네트워크서비스
- runtime data areas
- Splunk
- hotspot
- iPhone
- jvm
- 스마트폰
- Web2.0
- 페이스북
- Apple
- iPad