Java on Mac OS X Leopard
OSXDEV
이 문서는 Leopard에서의 Java의 몇가지 특징들을 소개합니다. 더 나은 성능 향상, 64비트 컴퓨팅, 실행하기 원하는 Java 버전 선택을 위한 새로운 선택사항, 여러분의 Java 코드 분석을 위한 새로운 분석도구를 포함한 개선사항들로 인해, Leopard는 Apple의 관심이 Mac에서 최상의 Java 경험을 제공하는 것과, 호환성을 유지함과 동시에 가장 최신의 하드웨어를 지원하는 데 있음을 보여주고 있습니다.
목차 |
[편집] 64비트 컴퓨팅의 이점을 누리기
Mac OS X Leopard는 32비트 컴퓨팅의 벽을 깨고, 동일한 운영체제 내에서 현재의 32 비트 소프트웨어와 나란히 차세대 64비트 응용프로그램들까지 실행할 수 있도록 합니다. Intel Core 2 Duo나 Xeon 프로세서 상에서 이러한 지원은 Java 응용프로그램에도 확장됩니다.
워드 프로세서나 스프레드쉬트 같은 전통적인 데스크탑 응용프로그램들을 위해서라면, 지난 10여년간 사용되어온 32비트 주소 공간은 충분합니다. 갑자기 휴먼 게놈이나 지구적 정보를 위한 작업 같은 데이터 집중 응응표르그램의 다음 세대를 위해서는 32비트 주소 어드레싱이 허용하는 4GB의 메모리 공간으로는 부족해졌습니다. 육십-사-비트 컴퓨팅은 4GB의 제약을 넘어 응용프로그램이 16 exabytes 이상의 메모리 공간을 사용할 수 있도록 해줍니다.
32비트와 64비트 컴퓨팅을 다른 관점으로 놓고 보자면, 32비트 주소 공간에서 일하는 것은 골든 게이트 다리의 도로라 상상해 볼 수 있습니다. 64비트 주소 공간이라면, 전 지구를 대상와 똑같은 해상도의 모든 면을 모델로 하는 것입니다.
64비트 Java 응용프로그램을 실행하는 데는 몇가지 방법이 있습니다. 커맨드 라인에서 -d64 표시를 할 수 있습니다. 예를 들어, 다음과 같은 표현으로 실행할 수 있습니다:
더블 클릭이 가능한 번들 응용프로그램에서는, 여러분의 응용프로그램 안에 있는 info.plist 파일에 다음과 같이 64 비트 가상 머신을 요청하도록 할 수 있습니다.
<key>JVMArchs</key> <array> <string>x86_64</string> </array>
만약 64비트 가상 머신을 사용할 수 없을 때에는, 기본으로 32비트 버전을 사용할 것입니다.
64비트가 지원되는 인텔 하드웨어용 순수 자바 응응프로그램을 위해서, 위 단계들 모두 여러분의 응용프로그램이 64비트로 실행되는 데에 필요할 것입니다. 만약 여러분이 응용프로그램에 네이티브 코드가 있다해도, PPC나 i386처럼 상해도 실행가능한 x86_64를 포함하는 유니버설 라이브러리를 만들 수 있습니다.
64비트 모드로 응용프로그램이 한번 실행해보는 동안, 아마도 여러분은 Heap 크기를 늘리고 싶어할 것입니다. 커맨드 라인에서 최대 Heap 크기를 지정하는 -Xms와 -Xmx 인수를 사용할 필요가 있습니다. 번들 응용프로그램에서는, Info.plist 파일에 다음과 같은 추가를 해주어야 합니다.
<key>VMOptions.x86_64</key> <string>-Xms2g -Xmx8g</string>
메모리의 큰 Heap을 가지고 실행할 때 중여한 점은, 가상 머신의 가비지 컬렉터가 작동하는 데 시간이 더 걸린다는 점입니다. 런타임 플래그에 -XX:+UseConcMarkSweepGC를 붙여 사용하는 Concurrent Mark and Sweep collector나 -XX:+UseParallelGC를 붙여 사용하는 Parallel collector와 같은 대안적인 가비지 컬럭터들을 실험해 볼 수도 있습니다.
[편집] 여러 버전의 Java 실행하기
Mac OS X은 여러 버전의 Java를 포함하고, 그중 하나를 골라 사용할 수 있습니다. /Applications/Utilities/Java folder에 있는 Java 환경설정 어플리케이션은, 커맨드 라인에서 애플릿, 패키지 응용프로그램 그리고 Java 웹 스타트 응용프로그램에서 기본으로 사용할 자바의 버전을 설정할 수 있게 해줍니다. 만약 기본으로 설정되지 않은 JDK 버전을 사용하기 원한다면, 커맨드 라인에서 직접 원하는 버전을 실행할 수 있습니다.
커맨드 라인에서 여러 Java 버전의 사용을 편하게 하려면, 여기 한가지 비법이 있습니다. /.bash_profile 파일에 다음과 같이 추가합니다.
alias java15=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Commands/java alias java14=/System/Library/Frameworks/JavaVM.framework/Versions/1.4/Commands/java
이제, 새로운 shell을 열 때, 무엇을 할지 설정할 수 있습니다. 예를 들어:
$ java14 -version
java version "1.4.2_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_16-b05-302)
Java HotSpot(TM) Client VM (build 1.4.2-85, mixed mode)
$ java15 -version
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)
이 비법에서 한발 더 나가보면 64비트 주소 공간에서 실행하는 데에도 응용이 가능합니다. 예를 들어, ~/.bash_profile 파일에 다음의 alias를 정의할 수 있습니다.
alias java64="java15 -d64"
Then, when you open a new shell, you'll be able to do the following:
그리고, 새로운 shell을 열 때, 이렇게 사용할 수 있습니다:
$ java64 -version
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_13-119, mixed mode)
[편집] 개발 도구 지원
Leopard에 소개된 도구들은 개발자들이 응용프로그램이 어떻게 실행되는지를 더 잘 이해할 수 있도록 도와줍니다. 시스템과 CPU 점유율, 네트워크 부하, 그래픽 부하, 사용자 이벤트 그리고 메모리 사용량과 같은 시간 대비 응용프로그램 성능의 여러가지 정보들을 시각적으로 나타냅니다. Java 개발자를 위해, 모든 thread의 사용빈도 모니터링을 포함해, Java 응용프로그램이 실행될 때에 세밀한 관찰이 가능하도록 하는 도구들이 내장되어 있습니다.
개발 초기의 성능과 분석 도구를 덧붙이기 위해, Leopard는 Ant와 Maven을 포함한 몇가지 Java 커뮤니티에서 개발한 도구들을 포함하고 있습니다. 이들 커맨드 라인 도구들을 포함을 통해, 최소의 설치로 여러분의 Java 응용프로그램을 보다 쉽게 바로잡을 수 있습니다. 여러분은 어떠한 오픈 소스 Java 프로젝트라도, 사업에 사용하려는 필요한 모든 것을 내려 받을 수 있습니다.
이미 알려진 바와 같이, Xcode의 새로운 Organizer는 끌어다 놓기로 Ant-based 프로젝트를 지원합니다. 여러분의 코드를 포함한 디렉토리를 열어보거나, Organizer로부터 바로 신규 Ant-based프로젝트를 생성할 수 있습니다. 그 이후에, 단순히 Build 버튼을 눌러 프로젝트를 빌드할 수 있습니다.
[편집] 더 빠른 실행
Ant나 Maven와 같은 커뮤니티가 개발한 최고의 도구들을 포함하는 Leopard는, 64비트 응용프로그램 지원, 이전에는 볼 수없던 응용프로그램 내부의 작업의 시각화를 지원합니다. 그럼에도 불구하고 Leopard에서 더 중요한 장점은 Java 런타임의 성능 향상입니다. ac OS X Tiger에 비해 Leopard는 Java응용프로그램을 실행하는데 있어 평균 10% 향상된 성능을 보여줍니다. 이러한 성능 향상은 Java 가상 머신과 운영체제 전반에 걸쳐 나타납니다.
물론, 64비트 지원 Java 응용프로그램은, Intel Core 2 Duo와 Xeon 프로세서의 레지스터 증가와 여러 장점들 덕분에, 32비트 응용프로그램보다 더 큰 성능 향상이 있습니다.
| 번역자 | 사용자:icebomb |
| 원본문서링크 | http://developer.apple.com/java/javaleopard.html (Last Updated - 2007-12-04) |







