Xmx, XX:MaxPermSize가 특정 값 이상일 때 Eclipse가 충돌하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1804913

  •  05-07-2019
  •  | 
  •  

문제

3.5GB RAM을 갖춘 WinXP SP3 32Bit에서 Eclipse 3.5.1, JDK 1.6.0_17을 실행합니다.
나는 알려진 사실을 알고 있다 Eclipse 모범 사례, 여전히 eclipse.ini를 알아내려고 노력 중입니다.

다음이 실행됩니다: -Xmx588m 그리고 이것은 그렇지 않습니다: -Xmx589m.
와 같다 -XX:MaxPermSize.위의 모든 것 -XX:MaxPermSize=140m 실행되지 않습니다.
죽음의 화면은 다음과 같습니다. 이것 (에서 가져옴 여기).

왜 이런 일이 일어날 수 있는지에 대한 아이디어가 있습니까?

도움이 되었습니까?

해결책

보다 이 이클립스 버그.

일반적인 문제는 jvm이 이를 위해 연속적인 메모리 블록을 필요로 한다는 것입니다.Windows에서 프로세스는 2GB를 얻게 되며, 로드되는 다른 라이브러리는 메모리 공간의 다른 영역에 배치됩니다.라이브러리가 중간에 배치되면 기본적으로 사용할 수 있는 크기가 절반으로 줄어듭니다.

Eclipse 실행 프로그램은 그래픽을 수행하기 위해 일부 시스템 dll을 로드하며, 특히 user32.dll로 인해 컴퓨터에 설치된 항목에 따라 타사 라이브러리가 로드될 수 있습니다(참조). 여기).

더 높은 메모리 제한을 달성하려면 jvm을 Eclipse 실행 프로그램과 별도의 프로세스로 강제로 분기할 수 있습니다.jvm 프로세스는 vm이 메모리를 초기화할 때까지 이러한 추가 라이브러리를 로드하지 않습니다.javaw.exe를 가리키는 -vm 인수를 사용하여 이를 수행합니다.

eclipse -vm C:\jdk\jre\bin\javaw.exe

다른 팁

또한보십시오 이 버그 203325 다음과 같은 도구를 사용하여 메모리 사용 방법을 모니터링하는 방법에 대한 제안은 다음과 같습니다.

  • jconsole
  • 메모리 모니터 도구 (일식 도구)

참고 : AS 여기에 댓글을 달았습니다:

최대 메모리 제한을 선언하지 않으면 OS 메모리 관리자에게 맡겨집니다.

그만큼 -Xmx <size> J2ME와 같은 작은 장치를 프로그래밍하는 데 유용합니다.
메모리가 제한된 작은 장치에 대한 프로그래밍중인 경우 사용할 수 있습니다. -Xmx JVM 속성 PC를 사용하고 있지만 작은 장치를 모방합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top