블로그 이전했습니다. 새로운 블로그는 http://miruel.tistory.com 입니다.

리눅스에서 이클립스 속도 빠르게 하는 또 다른 방법. Eclipse

이클립스를 메인 프로그래밍 도구로 사용하는 경우, 더할 나위 없이 편리한 환경을 제공해주지만, 프로젝트의 크기가 커질 수록 속도 저하가 심각하게 나타나는 경우가 종종 발생한다. 여기에, 이클립스를 리눅스 X콘솔에서 실행하지 않고 Xming이나 Xmanager 등으로 사용하여 리모트로 작업할 경우 속도 저하는 키입력에 딜레이가 걸리는 경우까지 발생할 수 있다.

이런 경우, 일반적으로 이클립스의 속도를 높이는 방법으로 eclipse.ini의 -vmargs의 -Xms, -Xmx, -XX:MaxPermSize 값을 조절하여, 이클립스가 사용할 메모리를 더 많이 할당하여 해결할 수 있고, 리모트의 경우 통신 프로토콜을 SSH에서 Telnet으로 바꿔주면 상당한 속도 향상을 얻을 수 있다.

리눅스의 경우 기본제공되는 OpenJDK의 JVM을 사용하지 않고 Sun(현 Oralcle)의 JVM를 사용하면 조금 더 나은 환경을 구축할 수 있다. 그렇지만, 자바로 구현된 이클립스의 특성상 어느정도의 느림은 감수해야 한다. 

여기까지는 널리 알려져 있는 이클립스 튜닝 방법들인데, 만약 리눅스에서, Sun의 JVM을 사용하여 Eclipse를 구동하여 사용 중이라면 다음의 옵션을 추가하면 도움이 된다. 

-vmargs
  -client
  -Dosgi.requiredJavaVersion=1.5
  -XX:MaxPermSize=256m
  -Xms512m
  -Xmx1024m

....고 생각한다. 개인적 체감을 이야기 하는 것이고, 정확한 성능 비교 자료가 없기 때문에 사실 장담하긴 어렵다. 

-client 옵션이 도움이 되는 이유는 Sun의 JVM은 클라이언트용 버전과 서버용 버전 두가지가 있기 때문인데, Windows의 경우 기본적으로 클라이언트용 JVM이 릴리즈 되고, Solaris와 Linux를 포함한 Unix 계열의 운영체제에는 기본으로 서버용 JVM이 실행되기 때문이다.

$ java
... 중략 ...
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is server
                  because you are running on a server-class machine.

간단히 두버전의 차이를 이야기 하자면 서버용 JVM의 경우 메모리를 더 많이 쓰면서, 꾸준한 성능을 내는데 초점을 맞추어 튜닝이 된 반면, 클라이언트용 JVM의 경우 더 적은 메모리의 사용과 빠른 초기 실행 속도와 빠른 사용자 인터렉션 반응속도에 중점을 두고 튜닝이 되어 있다는 점이다. 

우분투에서 Sun의 JRE를 사용하는 방법은 다음과 같다.
  • "프로그램 > 우분투 소프트웨어 센터" 실행
  • "케노니칼 파트너" 분류 선택
  • Sun Java(TM) ... 설치
터미널에서 기본 자바 가상머신을 Sun으로 선택

$ update-alternatives --list java
/usr/lib/jvm/java-6-openjdk/jre/bin/java
/usr/lib/jvm/java-6-sun/jre/bin/java

기본 자바를 sun jvm으로 선택
update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java

$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)

끗~




구글검색창

맞춤검색