내 소중한 공간

belling.egloos.com

포토로그 방명록



맥북에서 이클립스 속도 향상시키기. ## eclipse

맥북에서 이클립스로 안드로이드 개발을 하고 있다.
PC 에서는 안드로이드 개발 툴 (ADT)플러그인 이 설치된 뒤로 살짝 느려진 감이 있긴 하지만
(xml 레이아웃 작업을 한다던가..할때)

이클립스가 전체적으로 속도가 느려져서
퍼스펙티브 전환이라던가, 에디터 창 이동 간에도 몇 십초씩 걸리는 일은 없었다.

그런데, 맥북에서 이클립스 개발 중 빈번히 이런 문제가 발생 하고 있었는데..


이클립스가 사용하는 jvm 메모리 영역을 수정하여서 문제를 해결하는 방법이 있었다.

아래는 해법을 찾은 '로모홈'님 블로그 원문( http://lomohome.com/314 )중 일부 발췌.

윈도우용 이클립스는 eclipse.ini 라는 파일을 수정하거나 이클립스 실행파일의 바로가기에서 메모리 힙사이즈를 조정해서 빠르게 쓸수 있었는데 역시.. 찾아보니 답이 나왔다!


이클립스가 풀려있는 폴더로 가서 이클립스.app 을 보조클릭해서 "패키지 내용 보기" 로 들어간다.


Contents - MacOS 안으로 들어가면 eclipse.ini 파일이 보인다.
요놈을 텍스트편집기로 열어서 수정한다.

위는 수정한 후의 파일인데 먼저
-Xms***m
-Xmx***m
을 적당히 수정한다. 각각 처음에는 40m,512m 정도로 설정되어있는데 나는 4GB 메모리여서 일단은 두배 이상으로 128메가와 768메가로 설정을 해놨다.
--> By Kein :  전 -Xms 는 512  -Xmx 는 1024로 설정 했습니다. (저도 램 4기가 입니다)


중요한부분은 -Dogsi.requiredJavaVersion 인데 처음에는 1.5 로 설정되어있을것이다.
그런데 스노우 레오파드에는 기본 Java SDK 가 1.6으로 설치가 되어있을것이다.
그러므로 이부분을 1.6으로 수정해주자.

모르니 터미널을 열어서 자신의 자바 버젼을 확인하자.
java -version 으로 검사해보니 1.6 이 나왔다.

요렇게만 수정해도 확실히 빨리진 이클립스를 만날수 있다~


http://drkein.tistory.com/168

이클립스 속도 향상시키기 TIP ## eclipse

1. 이클립스 옵션 조정

우선 이클립스 폴더 안에 있는 eclipse.ini에 다음을 추가 하거나 수정해줍니다.

--------------------------------------------------------------------------------------------------

-Xverify:none

-XX:+UseParalleIGC

-Xms256M

-Xmx512M

-------------------------------------------------------------------------------------------------- 

-Xverify :

            초기 시동시 verfify체크를 하지 않습니다. 간혹 플러그인 features에 문제가 발생 할 수 있습니다. 

            플러그인 변경 사항이 있을 경우에는 이걸 체크하시고, 별 문제 없으면 추가해서 사용하시면 됩니다.

 

-XX:+UseParalleIGC :

             ParalleI Collector를 사용 하도록 합니다.  패럴로 모아주니 빨라지는 느낌이 드실 겁니다.

             다중 프로세서를 사용하시는 분들은 필수입니다.

 

-Xms256M :

             이클립스가 시작시 잡는 메모리입니다.(256메가 바이트)

 

-Xmx512M :

             이클립스가 사용하는 최대 메모리입니다.(512메가 바이트) 메모리 여유가 되시면 늘려주시는게 좋지요.

 
 

2. 메모리를 정리해 줍시다.

 

 

 

Window > Perference > General 에 보면 Show heap status라는 옵션이 있습니다.  이걸 켜주시면, 화면 오른쪽 하단에 아이콘이 생깁니다.

 

 

 

 

사용하다가, 메모리가 많이 쌓였거나, 느리다 싶을때 옆에 휴지통 아이콘을 누르시면 메모리가 정리가 되면서 좀더 빠른 작업을 하실 수 있을 겁니다.

 

추가로 메모리는 좀 들긴 하지만 자동 가비지 컬렉션 해주는 플러그인을 설치 하셔도 됩니다. 

 

 

3. 사용하지 않는 검사는 제외시켜 주세요.

 

필요 이상으로 많은 검사를 해서 느려지는 경우도 많습니다.  HTML이나 그외 기타등등 검사도 거기에 포함됩니다.  딱 필요한 검사만 하도록 하면 빨라지겠지요.

Window > Perferences > Validation 에서 자기가 사용하는 옵션을 켜 줍니다. 

 

 

 

그리고 영어 스펠링 검사입니다.  별도움 안될 것 같아서 꺼 놓습니다.

Window > Preference > General > Editors >Spellings 에서 Enable spell checking를 과감하게 꺼 놓습니다. 

 

 

 

 

 

4. 잘 사용하지 않는 기능과 사용 습관을 바뀌기

 

코딩하는 공간에서 잘 사용하지 않거나, 별 소용없는 기능은 꺼 주시는게 좋습니다.

 

Automatic folding 끄기

코드 옆에 더하기 표시 나와서 코드를 펼쳤다...닫았다 하는 기능입니다. 눈에도 안띄고 잘 안쓰는 기능이라서 꺼 놓습니다.

Window > Preferences > Java(또는 사용언어) > Editor > Folding 모든 옵션을 해제(disable)합니다. 

 

Automatic Content  Assist 끄기

Window > Preferences > Java(또는 사용언어) > Editor > Content Assist 에서 Enable auto activation 항목을  해제(disable)합니다.  자동 기능은 꺼지지만, ctrl + space는 여전히 code assist를 사용할 수 있습니다.

 

사용하지 않는 플러그인 삭제 하기

이클립스를 패키지로 설치하면 사용하지 않는 기능도 많이 들어가게 됩니다. 그 중에서 필요 없는 플러그인은 삭제하는게 좋습니다.

 

사용하지 않는 프로젝트 닫아 주기

현재 작업과 관련 없는 프로젝트는 닫아 주시는게 좋습니다. 이클립스가 접근하는 파일의 갯수를 줄여 주기 때문입니다.

 

사용하지 않는 파일은 닫아주기

작업하다가 사용하지 안흔 창은 닫아 주시는게 좋습니다.  이클립스를 종료시 편집하던 문서를 모두 닫고 종료하는건 다음에 이클립스를 띄을때 좀 더 가볍게 띄을수 있기 때문입니다.

Window > Preference > General > Editors 에서 Close editors automatically를 켜주세요. 그럼 아래에 설정된 숫자만큼만 문서가 열립니다. 그 이상의 문서는 자동으로 닫아집니다. 

 

사용하지 않는 플러그인을 start list에서 제외하기

Window > Preference > General > Startup and Shutdown에서, 불필요한 플러그인을 startup list에서 제외합니다. 이렇게 하면 이클립스가 실행시 좀더 빨라집니다.

 


 

5. 그래도 느릴경우

 

이클립스가 설치된 폴더에 바이러스 검사를 제외시켜주세요.

백신마다 제외시키는 설정이 있습니다. 이클립스가 설치된 폴더를 예외로 설정하시고 사용해 보세요.

 

작업하는 파일들과 이클립스 프로그램을 작은 파티션을 만들어서 관리해 보세요.

헤더의 움직임을 최소화 해주고 빨라집니다. 하드디스크에서 디스크 조각모음 하는것보다 훨씬 좋습니다.



원본글: http://www.cyworld.com/i2b_jhc/3576924


이클립스 속도 향상 (eclipse.ini 수정) ## eclipse

이클립스 속도 향상 (eclipse.ini 수정)


최근 이클립스가 버벅대서 오랜만에 이클립스 속도 향상 정보를 정리해본다.


eclipse.ini 수정


  1) Before


-startup

plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar

--launcher.library

plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810

-product

org.eclipse.epp.package.jee.product

--launcher.defaultAction

openFile

--launcher.XXMaxPermSize

256M

-showsplash

org.eclipse.platform

--launcher.XXMaxPermSize

256m

--launcher.defaultAction

openFile

-vmargs

-Dosgi.requiredJavaVersion=1.5

-Xms40m

-Xmx512m



  2) After


-vmargs

-Dosgi.requiredJavaVersion=1.6

-Xverify:none

-XX:+UseParallelGC

-XX:-UseConcMarkSweepGC

-XX:PermSize=128M

-XX:MaxPermSize=128M

-XX:MaxNewSize=128M

-XX:NewSize=128M

-Xms512m

-Xmx512m


  3) 설명

-Dosgi.requiredJavaVersion=1.6 => JDK 1.6 이상을 설치했을 경우에 1.6으로 설정하면 속도가 빨라진다.

-Xverify:none => 클래스의 유효성을 검사 생략. (시작 시간이 줄어 빨라진다.)
-XX:+UseParallelGC => 병렬 가비지 컬렉션 사용. (병렬 처리로 속도 향상)
-XX:+AggressiveOpts => 컴파일러의 소수점 최적화 기능을 작동시켜 빨라진다.
-XX:-UseConcMarkSweepGC => 병행 mark-sweep GC 수행하여 이클립스 GUI의 응답을 빠르게한다.
-XX:+CMSIncrementalMode=true => 점진적인 GC

-XX:PermSize=128M        => Permanent Generation(영구 영역) 크기(Out Of Memory 에러시 크기 조절)

-XX:MaxPermSize=128M  => 최대 Permanent Generation 크기

-XX:NewSize=128M         => New Generation(새 영역) 크기

-XX:MaxNewSize=128M   => New Generation(새 영역) 의 최대 크기


-Xms512m : 이클립스가 사용하는 최소 Heap 메모리
-Xmx512m : 이클립스가 사용하는 최대 Heap 메모리
                     최소와 최대를 같은 값으로 설정하면 오르락 내리락 하지않아 빨라진다.

혹시, 오류로 이클립스가 죽는다면 설정값을 한줄씩 지우거나 숫자를 변경해서 테스트 후 사용하기바람.

[메모리 정의 예]
1 기가 이하 메모리인 컴퓨터인 경우 => -Xms256m -Xmx256m
2 기가 ~ 3 기가 메모리인 컴퓨터    => -Xms512m -Xmx512m
4기가 이상 메모리인 컴퓨터            => -Xms1024m -Xmx1024m

[ 참고 ]
JVM 은 3가지 메모리 영역을 관리합니다.
 1. Permanent(영구) 영역 : JVM 클래스와 메소드를 위한 공간. = PermSize 설정
 2. New/Young 영역 : 새로 생성된 개체들을 위한 공간. = NewSize 설정
 3. Old 영역 : 만들어진지 오래된 객체들의 공간.(New 영역에서 이동해 온다)

http://blog.naver.com/sungback/90097516641

DB2 드라이버 버전 확인. ## DATABASES

cmd>java -cp ./db2jcc-1.4.2.jar com.ibm.db2.jcc.DB2Jcc -version
IBM DB2 JDBC Universal Driver Architecture 3.50.152

[Java Debugger]특정 메소드를 누가 호출하는지 추적하기 ## JAVA

"올바른 성장과 따뜻한 나눔"이 있는 넥스트리
어플리케이션에 문제가 있는 경우 문제가 되는 메소드를 누가 호출하지는 궁금할 때가 있다. 특히 운영중 평소에는 잘 돌다가 특정한 경우에 문제가 되는 메소드를 호출하여 장애가 발생하는 경우는 재현하기도 어렵고 추적하기도 매우 어렵다. 이런 경우 기본 Java Debugger인 jdb가 유용하다. (JDK에 기본으로 있다.)




상황1: 잘 돌던 웹 애플리케이션이 종종 죽는다.

물론 JVM 레벨에서 죽는 경우도 가끔있지만 이런 경우 대부분 core dump가 떨어진다. 그런데 dump도 떨어지지 않고 가끔 죽는 경우가 있어 혹시 개발자가 실수로 코드에서 System.exit를 호출하지 않았나 살펴보기로 하자.

- WAS 디버그로 구동하기
먼저 WAS 구동 시 -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 옵션을 주어 디버깅 모드로 구동한다. 이는 WAS 마다 설정방법이 조금씩 다르니 WAS 구동하는 스크립트를 잘 찾아본다. 여기(http://greatkim91.tistory.com/entry/WAS에서-동작하는-프로그램-원격-디버깅하기) 를 참조한다. 이 경우 8000번 포트로 디버그 접속을 열어놓았다.


- jdb로 접근하기
telent이나 도스창 같은 콘솔에서 다음과 같은 명령으로 jdb로 WAS에 접근한다.

prompt> jdb -connect com.sun.jdi.SocketAttach:port=8000

- monitor 걸기
jdb 안에서 다음 명령을 수행한다.

> stop in java.lang.System.exit
> monitor where

1라인: java.lang.System.exit 메소드에 breakpoint를 건다.
2라인: breakpoint에 걸리면 현재 stack trace를 출력한다.

이렇게 걸어 놓고 두면 언제가 웹애플리케이션이 죽으면 jdb 콘솔안에 다음과 같이 System.exit를 호출할 때의 stack을 남겨놓는다.




상황2: 어디선가 gc를 수행하고 있다.

모 프로젝트에서 별다른 패턴없이 full gc(garbage collection)을 수행하는 경우가 있었다. Java의 gc는 성능에 영향을 크게 미치는데 full gc는 특히 더 하다. 누군가 System.gc()를 호출하는 것은 아닌가 의심하고 디버그를 걸어놓기로 했다.

- 위와 같이 WAS를 디버그 모드로 구동하고 jdb로 접근한다.

- monitor 걸기

> stop in java.lang.System.gc
> monitor where
> monitor cont

1,2라인: 위와 동일하다.
3라인: gc한다고 서비스 멈추면 안되니 breakpoint 걸려 멈춘 (suspend) 쓰레드것들 계속진행(resume)하게 한다.

마찬가지로 서비스 중 gc가 호출되었다면 다음과 같이 gc가 호출되었을때의 stack이 출력되어 있을 것이다.



주의: WAS를 디버그 모드로 띄우면 메모리를 더 차지하는 등 성능에 악영향을 미칩니다. 평소에는 절대 디버그 모드로 띄우지 말고 위와 같이 아주 급한 상황에서 1대 정도만 디버그로 띄워서 문제를 잡아야 합니다.

from : http://greatkim91.tistory.com/87

1 2 3 4 5 6 7 8 9 10 다음