Eclipse에 가장 적합한 JVM 설정은 무엇입니까? [닫은]


315

Eclipse를 실행하기 위해 찾은 최고의 JVM 설정은 무엇입니까?


8
eclipse.iniHelios 3.6에 대한 새롭고 개선 된 설정은 다음과 같습니다 (아래 새 답변) : stackoverflow.com/questions/142357/…
VonC

6
건설적이지 않기 때문에 문을 닫은 질문이 그렇게 높은 평가를받는 것은 놀라운 일입니다.
bancer

1
이 질문은 2008 년에 이와 같은 질문에 대한 가장 최근 답변이 eclipsezone.com/eclipse/forums/t20732.html 일 때 질문되었습니다 . 새로운 버전의 이클립스와 자바가 출시 되었기 때문에 답변 세트가 커졌으며 이후의 업데이트로 인해 답변이 최신 상태로 유지되었습니다. 질문을 닫으면 답변이 오래됩니다. 제가이 질문을 다시 말로 생각할 수있는 유일한 방법은 특정 버전으로 만드는 것입니다. 여러 질문이 기본적으로 동일한 문제에 답할 수 있기 때문에 더 나쁘다고 생각합니다
Craig Angus

10
동의 -이 같은 폐쇄 질문입니다 광기 - 광기 제가 말씀 -이 같은 질문이 사이트에서 가장 유용하고 재미있다!
Luigi Plinge

3
폐쇄 사유에 따르면, "우리는 일반적으로 사실, 참조 또는 특정 전문 지식이 답변 될 것으로 기대합니다". 나는이 질문을 끝내는 것이 스트레칭이라고 생각합니다. 검열의 힘을 조심해서 사용합시다. 의심이가는 경우에는 "지식을 자유롭게 유지"하고 개방하는 것이 좋습니다.
luiscolorado

답변:


315

"eclipse.ini take 3"설정이 취소됩니다.

Eclipse Helios 3.6 및 3.6.x 설정

대체 텍스트 http://www.eclipse.org/home/promotions/friends-helios/helios.png

Eclipse Ganymede 3.4.xEclipse Galileo 3.5.x 설정 후 Eclipse Helios 3.6.x 의 "최적화 된" eclipse.ini 설정 파일에 대해 자세히 살펴 보겠습니다 .

( "최적화"란 직장에서 크 래피 워크 스테이션, 2002 년부터 2Go RAM 및 XPSp3을 사용하는 일부 오래된 P4에서 본격적인 Eclipse를 실행할 수 있음을 의미합니다. 그러나 Windows7에서도 동일한 설정을 테스트했습니다. )

Eclipse.ini

대체 텍스트

경고 : 비 Windows 플랫폼 -XX:MaxPermSize의 경우 Eclipse 독점 옵션 대신 Sun 독점 옵션을 사용하십시오 --launcher.XXMaxPermSize.
즉 : 하지 않는 한 최신 사용 jdk6u21 빌드 7 . 아래의 Oracle 섹션을 참조하십시오.

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons

참고 :
적응 p2.reconciler.dropins.directory선택의 외부 디렉토리.
SO 답변을 참조하십시오 . 아이디어는 Eclipse 설치와 독립적으로 디렉토리에 새 플러그인을 놓을 수 있도록하는 것입니다.

다음 섹션에서는이 eclipse.ini파일의 내용을 자세히 설명 합니다.


두려운 Oracle JVM 1.6u21 (빌드 7 이전) 및 Eclipse 충돌

Andrew Niefer 는이 상황에 대해 경고하고 비표준 vm 인수 ( ) 에 대한 블로그 게시물을 작성 -XX:MaxPermSize했으며 다른 공급 업체의 vms가 전혀 시작되지 않을 수 있습니다.
그러나 해당 옵션 ( --launcher.XXMaxPermSize) 의 이클립스 버전은 새로운 JDK와 함께 작동하지 않습니다 (6u21 빌드 7을 사용하지 않는 한 6u21은 아래 참조).

그만큼 결정적인솔루션은 Eclipse Wiki6u21 사전 빌드 7이 설치된 Windows의 Helios 전용입니다.

  • 고정 된 eclipse_1308.dll 다운로드 (2010 년 7 월 16 일)
  • 그리고 그것을 넣어
(eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503

그게 다야. 어떤 설정 (만 헬리오스를 들어, 여기에 다시 조정할 수 없습니다 Windows에서 로모그래퍼 6u21 사전 빌드 7 ).
Windows 이외의 플랫폼의 경우 Sun 독점 옵션으로 되돌려 야합니다 -XX:MaxPermSize.

문제는 회귀 중 하나 입니다. java.exe의 Oracle 브랜드 변경으로 인해 JVM 식별이 실패 하고 Eclipse에서 버그 319514가 트리거 되었습니다.
Andrew는 버그 320005를 처리했습니다. [[launcher] --launcher.XXMaxPermSize: isSunVM는 Oracle대해 true를 반환해야 하지만 Helios 3.6.1에만 해당됩니다. 또 다른 이클립스 커미터 인
프랜시스 업튼 은 모든 상황을 반영한다 .

7 월 27 일 u21b7 업데이트 :
Oracle은 다음 Java 6 릴리스에 대한 변경 사항을 취소했으며 JDK 7까지는 다시 구현하지 않습니다 . jdk6u21 build 7
을 사용하는 경우 ( 비표준--launcher.XXMaxPermSize 옵션) 대신 (일식 옵션)으로 되돌릴 수 있습니다 -XX:MaxPermSize. C 런처 심에서 발생
하는 자동 감지eclipse.exe 는 여전히 " Sun Microsystems"문자열을 찾지 만 6u21b7에서는 이제 다시 작동합니다.

지금은 여전히 -XX:MaxPermSize버전을 유지합니다 (모두가 올바른 JDK를 일식으로 시작할 것인지 전혀 모르기 때문에 ).


암시 적`-startup` 및`--launcher.library`

이전 설정과 달리 해당 모듈의 정확한 경로는 더 이상 설정되지 않으며 이는 Eclipse 3.6.x 릴리스마다 다를 수 있으므로 편리합니다.

  • 시작 : 지정하지 않으면 실행 파일은 플러그인 디렉토리 org.eclipse.equinox.launcher에서 가장 높은 버전 의 번들을 찾습니다 .
  • launcher.library : 지정되지 않은 경우 실행 파일은 plugins디렉토리 org.eclipse.equinox.launcher.[platform]에서 가장 높은 버전 의 적절한 조각을 찾고 eclipse_*내부 에서 공유 라이브러리를 사용합니다 .

JDK6 사용

JDK6은 이제 Eclipse를 시작하기 위해 명시 적으로 필요합니다.

-Dosgi.requiredJavaVersion = 1.6

SO 질문 은 Mac OS 개발에 대한 긍정적 인 발병률을보고합니다.


실험적 VM 옵션 잠금 해제

다음 옵션은 Sun JVM의 실험 옵션 중 일부입니다.

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

블로그 게시물 에서 Eclipse 속도를 높일 수 있다고보고되었습니다 . 여기 및 공식 Java 핫스팟 옵션 페이지 에서
모든 JVM 옵션 을 참조하십시오 .
참고 : 기본적으로 활성화 될 수있는 해당 옵션 보고서 의 자세한 목록입니다UseFastAccessorMethods .

"JVM 업데이트" 도 참조하십시오 .

G1은 JDK 7을 준비하는 새로운 가비지 수집기이지만 이미 u17의 버전 6 릴리스에서 사용되었습니다.


명령 행에서 Eclipse에서 파일 열기

이 새로운 옵션을보고하는 Andrew Niefer 의 블로그 게시물 을 참조하십시오 .

--launcher.defaultAction
openFile

" -"로 시작하지 않는 인수 만 포함하는 명령 행으로 호출 된 경우 실행 프로그램에 " "로 시작하는 것처럼 처리해야합니다 --launcher.openFile.

eclipse myFile.txt

이것은 Eclipse와 연관된 파일을 두 번 클릭하거나 파일을 선택하고 " Open With"또는 " Send To"Eclipse를 선택할 때 실행기가 Windows에서 수신하는 일종의 명령 행 입니다.

상대 경로 는 현재 작업 디렉토리에 대해 먼저, 두 번째는 Eclipse 프로그램 디렉토리에 대해 해결됩니다.

참조 버그 301033을 참조하십시오. 원래 버그 4922 (2001 년 10 월, 9 년 후 수정)


p2 및 서명되지 않은 대화 상자 프롬프트

많은 플러그인을 설치하는 동안이 대화 상자가 피곤하다면 :

대체 텍스트

에 추가하십시오 eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

이보기 블로그 게시물 에서 크리스 Aniszczy 하고, 버그 리포트 235526을 .

보안 연구가 프롬프트가 적을수록 좋다는 사실을지지한다고 말하고 싶습니다.
사람들은 자신이하고 싶은 일의 흐름에 나타나는 것을 무시합니다.

3.6의 경우 흐름 중간에 경고를 표시해서는 안됩니다. 아무리 단순화하더라도 사람들은 경고를 무시합니다.
대신 모든 문제를 수집하고 문제가 있는 번들을 설치 하지 말고 사용자가 워크 플로에서 문제를 해결할 수있는 지점으로 다시 가져와야합니다. 신뢰를 추가하고 보안 정책을 더 느슨하게 구성하는 등의 작업을 '안전' 이라고 합니다. 스테이징 ' .

---------- http://www.eclipse.org/home/categories/images/wiki.gif 대체 텍스트 http://www.eclipse.org/home/categories/images/wiki.gif 대체 텍스트 http://www.eclipse.org/home/categories/images/wiki.gif

추가 옵션

이러한 옵션은 eclipse.ini위 의 내용은 아니지만 필요한 경우 유용 할 수 있습니다.


Windows7의`user.home` 문제

이클립스가 시작되면 키 저장소 파일 (비밀번호가 유지되는 위치)을 읽을 수 있습니다 user.home.
어떤 이유로 든 user.home완전한 경로로 제대로 해결되지 않으면 Eclipse가 시작되지 않습니다. 이 SO 질문
에서 처음 발생했습니다. 이 문제 가 발생하면 키 저장소 파일을 명시 적 경로로 다시 정의해야합니다 (시작시 해결할 user.home이 더 이상 없습니다)

에 추가하십시오 eclipse.ini:

-eclipse.keyring 
C:\eclipse\keyring.txt

이것은 버그 300577에 의해 추적되었으며 ,이 다른 SO 질문 에서 해결되었습니다 .


디버그 모드

잠깐, Eclipse에 둘 이상의 설정 파일이 있습니다. 옵션에
추가하면 eclipse.ini:

-debug

디버그 모드 를 활성화하면 Eclipse가 다른 설정 파일 ( .options일부 OSGI 옵션을 지정할 수 있는 파일) 을 찾습니다 .
dropins 폴더를 통해 새 플러그인을 추가 할 때 좋습니다.
블로그 게시물 " dropins 진단 "에 설명 된대로 .options 파일에 다음 설정을 추가하십시오 .

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

P2는 dropins/폴더에서 발견 된 번들 , 생성 된 요청 및 설치 계획을 알려줍니다 . 실제로 발생한 일과 잘못된 일에 대한 자세한 설명은 아니지만 시작 위치에 대한 강력한 정보를 제공해야합니다.

  • 계획에 번들이 있었습니까?
  • 설치 문제입니까 (P2 결함)
  • 또는 기능을 포함하는 것이 최적이 아닌 것입니까?

버그 264924-[조정자] Dropins 문제 진단 없음 에서 비롯된 것으로 다음과 같은 문제를 해결합니다.

Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5

OCL이 누락 된 EMF에 의존하기 때문에 이는 문제가되는 구성입니다.
3.5M5는이 문제를 진단하지 않습니다.

식을 시작하십시오.
명백한 문제는 없습니다. 오류 로그에 아무것도 없습니다.

  • Help / About / Plugin세부 정보는 표시 org.eclipse.ocl.doc하지만 표시되지는 않습니다 org.eclipse.ocl.
  • Help / About / Configuration세부 사항은에 대한 (진단 적) 언급이 없습니다 org.eclipse.ocl.
  • Help / Installation / Information Installed Software에 대한 언급이 없습니다 org.eclipse.ocl.

좋은 오류 마커는 어디에 있습니까?


매니페스트 클래스 패스

블로그 게시물을 참조하십시오 :

  • Galileo (일명 Eclipse 3.5)에서 JDT는 프로젝트 빌드 경로에 추가 된 라이브러리에서 매니페스트 클래스 경로를 해결하기 시작했습니다. 이것은 라이브러리가 프로젝트의 빌드 경로에 직접 추가되었거나 JDT에서 제공하는 사용자 라이브러리 기능 또는 타사에서 구현 한 사용자 라이브러리 기능과 같은 클래스 경로 컨테이너를 통해 추가되었는지 여부입니다.
  • Helios에서는이 동작이 매니페스트 클래스 경로 확인에서 클래스 경로 컨테이너를 제외하도록 변경되었습니다.

즉, 일부 프로젝트가 더 이상 Helios에서 컴파일되지 않을 수 있습니다.
Galileo 동작으로 되돌리려면 다음을 추가하십시오.

-DresolveReferencedLibrariesForContainers=true

참조 버그 305037 , 버그 313965버그 313890 참조에 대한합니다.


IPV4 스택

SO 질문 은 플러그인 업데이트 사이트에 액세스하지 않을 때의 잠재적 인 해결책을 언급합니다.

-Djava.net.preferIPv4Stack=true

구성에 도움이 될 수 있도록 여기에 언급했습니다.


JVM1.7x64 잠재적 최적화

이 기사 는 다음을보고합니다.

기록상, 1.7 x64 JVM n Windows로 벤치 테스트를 위해 지금까지 찾은 가장 빠른 옵션은 다음과 같습니다

-Xincgc 
-XX:-DontCompileHugeMethods 
-XX:MaxInlineSize=1024  
-XX:FreqInlineSize=1024 

그러나 나는 여전히 그것을 연구하고 있습니다 ...


이 링크 oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#icms 에 따라 -XX : + CMSIncrementalMode를 사용하려면 -XX : + UseConcMarkSweepGC가 있어야합니다. 그것은 위의 예에서 누락되었습니다. G1 GC를 사용하는 경우 CMSIncrementalMode가 필요하지 않습니다. 맞습니까?
RuntimeException

1
야, G1GC는 맥에서의 재앙이다. 전체 머신을 사용하므로 재부팅이 필요합니다.
bmargulies

4
@VonC : 나를 위해 HORRENDOUS 속도 저하가 -XX:CompileThreshold=5발생 합니다. 이 옵션 만 제거하면 Eclipse 시작 시간이> 1 분에서 17 초로 줄었습니다 !! IDE가 일반적으로 얼마나 느리게 진행되었는지는 말할 것도 없습니다. 이 링크 참조
TrinitronX

3
@TrinitronX : (및 실제로 모든 사람) -XX:CompileThreshold=5는 매우 낮은 값입니다 (기본값 = 10000). 이 값은 컴파일하기 전에 메소드 호출 / 분기 수를 나타냅니다. 값이 너무 낮 으면 CodeCache가 조기에 채워지고 콘솔에서 다음을보고 할 수 있습니다. CodeCache is full. Compiler has been disabled 컴파일러가 비활성화되면 앱 속도가 느려집니다. 이것을 수정하는 두 가지 방법이 있습니다. 1. 사용 -XX:CompileThreshold=1000(이 숫자 조정) 또는 2. 사용하여 코드 캐시 크기를 늘리십시오 -XX:ReservedCodeCacheSize=64m(기본 32m의 두 배)
Drupad Panchal

4
리눅스 사용 /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client/libjvm.so JVM의 위치
r15habh

76

Eclipse Galileo 3.5 및 3.5.1 설정

- (일식 3.5.x의 참조 갈릴레오와 현재 (2009 년 7 월), 나는 JDK6 갱신 (17) 다음 옵션 설정 사항을 테스트입니다 3.4 아래에 대한 위 헬리오스 3.6.x에서 :)
(물론, 상대 경로를 적응 이 eclipse.ini에 설정의 올바른 경로에 있음)

참고 : eclipse3.5의 경우 다음 startup과 같이 launcher.library줄을 바꾸십시오 .

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519

eclipse.ini 3.5.1

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
../../../../program files/Java/jdk1.6.0_17/jre/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins

자세한 내용은 위의 원래 답변 을 참조하십시오.

변경 사항 (2009 년 7 월부터)

  • 프레임 워크가 아닌 실행기를 나타냅니다.
  • 공유 플러그인 : org.eclipse.equinox.p2.reconciler.dropins.directory옵션.
  • Galileo는 작업 공간 또는 VM에 대한 완전한 상대 경로를 지원합니다 (물론 JVM과 작업 공간이 동일
    하게 유지되는 경우 하나의 일식 설치에서 다른 일식 설치로 경로를 수정하지 않아도 됨) 이전에는 일식이 시작될 때 해당 상대 경로가 절대 경로로 다시 쓰여졌습니다. ...
  • Eclipse 디렉토리에 Java JDK 설치의 JRE 디렉토리를 복사 할 수도 있습니다.

경고

실제로 JDK와 관련된 중단 점무시한 버그가있었습니다 . 일식
시작하기 위해 JDK6u16 이상을 사용하십시오 (그런 다음 일식 에서 컴파일하려는 JDK를 많은 수로 정의 할 수 있습니다 . JDK6으로 일식을 시작하기 때문에 동일한 JDK로 컴파일해야합니다).

맥스

사용법에 유의하십시오.

--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m

에 설명 된대로 이클립스 위키 ,

Eclipse 3.3은 실행기에 대한 새로운 인수를 지원합니다 --launcher.XXMaxPermSize.
사용중인 VM이 Sun VM이고 아직 -XX:MaxPermSize=VM 인수가 없는 경우 실행기는 -XX:MaxPermSize=256m사용중인 VM 인수 목록에 자동으로 추가 됩니다.
3.3 실행기는 Windows에서 Sun VM 만 식별 할 수 있습니다.

이 항목에 자세히 설명 된대로 :

모든 vms가 -XX:MaxPermSize인수를 허용하는 것은 아니므 로 이러한 방식으로 전달됩니다. sun vms 식별에 문제가 있거나 없을 수 있습니다.
참고 : Eclipse 3.3.1에는 실행기가 Sun VM을 감지 할 수없는 버그 가 있으므로 올바른 PermGen 크기를 사용하지 않습니다. 이 문제는 Mac OS X에서 3.3.0 용으로 알려진 버그 인 것 같습니다 .
이러한 플랫폼 조합 중 하나를 사용하는 경우 위에서 설명한대로 -XX플래그를 추가하십시오 eclipse.ini.

노트:

  • " 384m"행 =384m은 VM 인수 의 " "부분으로 변환 됩니다. VM이 " m" 에 대해 대소 문자를 구분하면 이 인수도 마찬가지입니다.
  • " --launcher."접두어는 인수가 실행기 자체에서 사용되며 응용 프로그램 인수와 이름 충돌을 피하기 위해 실행기 특정 인수에 추가되었음을 지정합니다. (다른 예는 --launcher.library, --launcher.suppressErrors)

-vmargs -XX:MaxPermSize=384m부분은 실행기를 완전히 무시하고 VM 공급 업체에 대한 검사가 사용되지 않고 VM에 직접 전달되는 인수입니다.


최신 Eclipse 3.5x64 릴리스의 경우 몇 가지 문제가 있습니다. --launcher.library plugins / org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519 -startup plugins / org.eclipse.equinox.launcher_1 .0.200.v20090520.jar 또한 m2eclipse 플러그인에 jdk JAVA_HOME / bin / javaw를 사용해야했습니다. 그렇지 않으면 이것은 대단합니다.
Nathan Feger

이 두 사람이 같은 일을하지 않습니까? "--launcher.XXMaxPermSize 384m"및 "-XX : MaxPermSize = 128m"
Igor Zinov'yev 2009

@ Igor Zinov'yev : 약간 중복되지만 플랫폼 및 일식 버전에 따라 둘 다 유용 할 수 있습니다. 나는 그것들을 같은 값으로 재설정하고 그 설정에 관한 약간의 문서로 대답을 완성했습니다.
VonC


항상 최신의 가장 큰 VM을 사용하려면 왜 "-Dosgi.requiredJavaVersion = 1.5"인수가 1.6을 사용하지 않습니까?
Tony R

63

이클립스 가니메데 3.4.2 설정


최신 설정은 위의 Eclipse Galileo 3.5 설정을 참조하십시오 .


JDK

내 의견으로는 항상 최고의 JVM 설정 에는 찾을 수 있는 최신 JDK가 포함되어 있습니다 (지금은 b14 및 b15를 제외하고 jdk1.6.0_b07 ~ b16까지 )

eclipse.ini

메모리 설정이 매우 낮더라도 2Go RAM이있는 오래된 (2002) 데스크톱에서 큰 자바 프로젝트 (웹 서버와 함께)를 실행할 수 있습니다.

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vm
jdk1.6.0_10\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote

참조 GKelly의 SO 응답표트르 Gabryanczyk의 블로그 항목 새로운 옵션에 대한 자세한 내용을.

모니터링

다음과 같이 시작할 수도 있습니다.

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

메모리 소비 에 대한 이전 질문 에서 말했듯이 .


1
VM 설정에 포함시킬 때 -Xssv2m이란 무엇입니까? eclipse가 실행되지 않을 때 JVM 설정에 대한 문서를 살펴 보았지만 찾을 수 없었습니다.
Craig Angus

맞아 ... 그것은 오타였습니다 : Xssv2m이 아닌 Xss2m : -Xss는 스택의 크기를 결정합니다 : -Xss1024k. 스택 공간이 너무 작 으면 결국 예외 클래스 java.lang.StackOverflowError (신화적인 오류 메시지 ;-))가 나타납니다.
VonC

마지막으로 두 번째 설정을 사용하여 제대로 작동하는지 놀랐습니다!
Craig Angus

잠시 동안 설정을 사용할 수있는 기회가 있었지만 일식은 빠르지 만 개미 빌드를하는 것이 느리게 보입니다. ??
Craig Angus

@Craig Angus : 이상하고있는 이클립스 버전은 무엇입니까? 그리고 어떤 개미 버전이 포함되어 있습니까?
VonC

20

Eclipse Indigo 3.7.2 설정 (64 비트 Linux)

에 대한 설정 썬 / 오라클 자바 버전 "1.6.0_31"와 이클립스 3.7 리눅스 - 64에서 실행 :

-nosplash
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms64m
-Xmx200m
-XX:NewSize=8m
-XX:PermSize=80m
-XX:MaxPermSize=150m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

힙에는 200MB, 힙이 아닌 경우 150MB 만 사용합니다. 거대한 플러그인을 사용하는 경우 "-Xmx200m"및 "-XX : MaxPermSize = 150m"제한을 모두 증가시킬 수 있습니다.

이러한 플래그의 기본 최적화 대상 은 모든 경우에 대기 시간최소화 하고 보조 최적화 대상으로 메모리 사용을 최소화하는 것입니다.


나를 위해 환상적으로 작동합니다 (메모리 관련 설정 값을 두 배로 늘 렸지만 여전히 낮고 물집이 빠릅니다!)
Aktau

-XX : + UseConcMarkSweepGC와 -XX ​​: + UseParNewGC가 둘 다 있습니다. 왜? 두 가지 가비지 수집기를 모두 사용할 수 있다고 생각하지 않으며 결국 어느 것을 사용할지 잘 모르겠습니다.
herman

-XX : + UseConcMarkSweepGC는 이전 세대 가비지 수집 용이고 -XX : + UseParNewGC는 에덴 가비지 수집 용이라고 생각했습니다.
Mikko Rantalainen


3
각 옵션과 옵션에 대한 각 인수는 고유 한 행에 있어야합니다.
Josh Clemm

14

-쇼 위치

일식을 두 번 더 쉽게 실행하고 처리하는 작업 공간을 알기 위해

Eclipse 3.6에는 환경 설정 옵션을 추가하여 다음 Workspace name (shown in window title)-showlocation세 가지 이유 보다 표시 할 내용을 지정합니다 .

  1. 이클립스를 다시 시작하지 않아도 적용됩니다.
  2. 짧은 코드를 선택할 수 있습니다.
  3. Perspective 및 응용 프로그램 이름 앞에 먼저 나타납니다.

9

jdk6 업데이트 14를 사용하는 경우 성능을 향상시키는 것으로 보이는 G1 가비지 수집기를 사용하는 것이 좋습니다.

이렇게하려면 다음 설정을 제거하십시오.

-XX : +
ConcMarkSweepGC 사용
-XX : + CMSIncrementalMode -XX : + CMS 증분 페이싱

다음과 같이 바꾸십시오.

-XX : + 실험적 VM 옵션 잠금 해제
-XX : + UseG1GC


9

Linux + Sun JDK / JRE 32bits 를 사용하는 경우 "-vm"을 다음과 같이 변경하십시오.

-vm 
[your_jdk_folder]/jre/lib/i386/client/libjvm.so

Linux + Sun JDK / JRE 64bits 를 사용하는 경우 "-vm"을 다음과 같이 변경하십시오.

-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so

우분투 8.10 및 9.04에서 잘 작동합니다.


JDK를 기본 환경으로 사용하는 Eclipse가 있습니까?
Thorbjørn Ravn Andersen 님

이것은 특정 / 다른 JDK를 기본 환경으로 사용하는 Eclipse를 사용하는 데 사용할 수 있습니다.
Gilberto Olimpio

7

JRockit으로 실행할 수도 있습니다 . 서버에 최적화 된 JVM이지만 IDE와 같이 오래 실행되는 많은 클라이언트 응용 프로그램이 JRockit에서 매우 잘 실행됩니다. 이클립스도 예외는 아닙니다. JRockit에는 perm-space가 없으므로 구성 할 필요가 없습니다.

UI가 중단되는 긴 gc 일시 중지를 피하기 위해 일시 ​​중지 시간 대상 (ms)을 설정할 수 있습니다.

-showsplash
org.eclipse.platform
-vm
 C:\jrmc-3.1.2-1.6.0\bin\javaw.exe 
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20

나는 보통 -Xmx와 -Xms 설정을 귀찮게하지 않으며 필요에 따라 JRockit이 힙을 자라게합니다. JRockit으로 Eclipse 애플리케이션을 실행하면 JRockit Mission Control 도구 스위트를 사용하여 애플리케이션에서 메모리 누수를 모니터, 프로파일 링 및 찾을 수 있습니다. 이 업데이트 사이트 에서 플러그인을 다운로드 하십시오 . 참고, Eclipse 3.3 및 Eclipse 3.4에서만 작동합니다.


나는 과거에하는 JRockit에서 실행 일식을 아주 잘 실행
크레이그 앵거스

5

다음은 i7 2630M 16GB RAM 랩톱에서 실행되는 Eclipse에 대한 내 설정입니다.이 설정은 단일 충돌없이 일주일 동안 사용되었으며 Eclipse 3.7은 원활하게 실행됩니다.

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-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
-Xms1024m
-Xmx4096m 
-XX:MaxPermSize=256m

계산 : Win 7 x64의 경우

  • Xms = 실제 메모리 / 16
  • Xmx = 실제 메모리 / 4
  • MaxPermSize = 기본값과 동일 (256m)

와우 16G 노트북? 궁금해. 그게 System76입니까? : D
Phil

5
-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dcom.sun.management.jmxremote
-Declipse.p2.unsignedPolicy=allow

그리고이 설정은 저에게 매력처럼 작용했습니다. OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24를 실행 중입니다.


고마워, 이것은 내 성능을 상당히 향상시키는 데 도움이되었습니다 (유사한 설정). 그러나 최대 힙 크기를 1024MB로 올렸습니다.
Jeff Evans

4

내 자신의 설정 (자바 1.7, 1.6 수정) :

-vm
C:/Program Files (x86)/Java/jdk1.7.0/bin
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20100628
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-server
-Dosgi.requiredJavaVersion=1.7
-Xmn100m
-Xss1m
-XgcPrio:deterministic
-XpauseTarget:20
-XX:PermSize=400M
-XX:MaxPermSize=500M
-XX:CompileThreshold=10
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-XX:+AggressiveOpts
-Xms512m
-Xmx512m

3

Eclipse는 많은 RAM을 좋아합니다. -Xmx512M 이상을 사용하십시오. 가능한 경우 더.



2

XX : + UseParallelGC는 지금까지 가장 멋진 옵션입니다 !!!


1

-vm
C : \ Program Files \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll

사용중인 Java 버전을 지정하고 javaw 프로세스를 시작하는 대신 dll을 사용하려면


0

여기에 내가 사용하는 것이 있습니다 (설정 파일 대신 바로 가기에 있음).

eclipse.exe -showlocation -vm "C : \ Java \ jdk1.6.0_07 \ bin \ javaw.exe"-vmargs -Xms256M -Xmx768M -XX : + UseParallelGC -XX : MaxPermSize = 128M

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.