2009-09-29 5 views
1

내가 이클립스 내에서 수백 메가 바이트의 메모리를 필요로하는 알고리즘을 실행하려고하고 있는데 VM 인수 -Xmx512m을 지정했지만 계속 시도 할 때 줄어들 것으로 보이는 임의의 메모리 제한을 초과 할 수는 없다. 내 프로그램을 운영 할 수 있습니다. 실제 메모리는 문제가되지 않을 수 있습니다.Eclipse가 런타임 VM 메모리 옵션을 따르지 않습니까?

답변

5

Eclipse는 VM 인수를 사용하지만 Eclipse 플랫폼 자체에 해당하므로 응용 프로그램을 수정해야합니다. 실행 구성을 실행하여 메모리가 충분한 지 확인하십시오.

Eclipse 내에서 프로그램을 실행하면 기본 매개 변수로 새 Launch Configuration이 작성됩니다. 다음, 관련 구성을 선택합니다 - ..>실행 구성 (>디버그 구성 ... 또는 디버그을 -) 당신은 실행을 선택하여 이러한 매개 변수를 수정할 수 있습니다. Java 기본 응용 프로그램 인 경우 구성은 Java 응용 프로그램이며, 처음 실행했을 때 선택한 클래스 나 프로젝트의 이름이됩니다.

다음 VM 인수에 (즉 -Xmx512m) 창 관련 JVM 인수를 입력 한 다음 인수 탭을 실행 구성을 선택합니다. 원하는 경우 을 입력하여 기본 메소드로 전달할 프로그램 인수을 입력 할 수도 있습니다.

launch configuration screenshot

업데이트 : 당신의 알고리즘 (이 경우처럼 소리) 방법 및/또는 클래스 개체를 많이 만드는 경우 전달하려고하는 또 다른 매개 변수는 -XX:MaxPermSize=128m입니다.

+0

다른 속성을 추가했습니다. –

+0

저는 실제로 많은 클래스 객체를 만들었습니다. –

-1

Eclipse의 인수가 아닌 실행 대화 상자에서 테스트 응용 프로그램의 인수를 지정해야합니다.

1

인수 -Xms도보십시오. 인수가 실행 모드 (실행/디버그)에 지정되어 있는지 확인하십시오.

아직 문제가 있다면 프로파일 러를 사용하여 메모리에서 일어난 일을 확인하거나 Runtime.getRuntime()을 로깅 할 수 있습니다. freeMemory()가 도움이 될 수 있습니다.

+0

-Xms를 시도했지만 여전히 도움이되지 않았습니다. 나는 정말로 Runtime.getRuntime(). freeMemory()가 필요하지 않지만, 팁에 관계없이 감사한다. –

관련 문제