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

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



답변

“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.7×64 잠재적 최적화

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

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

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

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


답변

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에 직접 전달되는 인수입니다.


답변

이클립스 가니메데 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

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


답변

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”제한을 모두 증가시킬 수 있습니다.

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


답변

-쇼 위치

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

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

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

답변

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

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

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

다음과 같이 바꾸십시오.

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


답변

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에서 잘 작동합니다.