Android/Tools2009. 10. 12. 13:18
http://source.android.com/using-eclipse
의 내용 중.

Increase Eclipse's Memory Settings

The Android project is large enough that Eclipse's Java VM sometimes runs out of memory while compiling it. Avoid this problem by editing the the eclipse.ini file. On Apple OSX the eclipse.ini file is located at /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini

Memory-related defaults (as of Eclipse 3.4)

-Xms40m
-Xmx256m
-XX:MaxPermSize=256m

Eclipse에서 android source를 보기 위해서는 위와 같이 JVM의 heap size를 증가 시켜주는 것이 eclipse 를 구동하는데 안정적이고 좋다.
만약 heap size를 증가 시키지 않으면 OutOfMemoryErrors 를 자주 보게 될 것이다.

간혹 위의 내용을 참고하여 eclipse.ini 파일을 위와 같이 수정하였으나
아래와 문제가 발생하며 eclipse가 실행되지 않는 현상을 접하는 분들이 있을 것이다.
JVM terminated. Exit code=-1
-Xms256m
-Xmx512m



이때 아래와 같이 eclipse.ini를 수정 후 정상 동작 한다.

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
C:\Program Files\Java\jdk1.6.0_03\bin\javaw.exe

-vmargs
-Xms256m
-Xmx512m
-XX:MaxPermSize=256m


-vm 옵션을 이용하여 javaw의 위치를 정확히 지정해 준 이후에 eclipse가 위의 에러없이 정상 동작 함을 확인 하였다.

추가로 http://wiki.eclipse.org/Eclipse.ini 를 보면 아래와 같은 내용이 있으니 참고한다.
-vmargs 옵션 아래로 선언되는 옵션 값들은 JVM에게 전달해 주는 것이다.
즉 heap size 조정 option들은 -vmargs 아래쪽에 위치 해야 한다는 이야기이다.

Important:
  1. Each option and each argument to an option must be on its own line.
  2. All lines after -vmargs are passed as arguments to the JVM, so all arguments and options for eclipse must be specified before -vmargs (just like when you use arguments on the command-line)

알다시피 eclipse는 JVM에서 구동이 되는 application이므로 우리는 JVM에게 eclipse를 구동하기 위해서 얼마의 heap을 사용 할 수있도록 option값을 주는 것이다.

참고 site:
http://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F
Posted by ekwang