2012-03-20 4 views
3

스레드를 사용하여 채팅 응용 프로그램을 개발했습니다. 하지만 내 응용 프로그램 시스템을 시작할 때 매우 느리게 동작하고 때때로 힙이 가득 차는 예외가 발생합니다. Java 가상 머신의 힙 크기를 늘리고 싶습니다. 내가 어떻게 해?JVM의 힙 크기 증가에 대해

+1

이 당신에게 http://stackoverflow.com/questions/880855/increase-the-java-heap-size-permanently – kunal

답변

2

응용 프로그램을 시작할 때 명령에 -Xmx100m을 추가하십시오. 이렇게하면 100MB 힙이 제공됩니다 (번호를 변경할 수 있음).

그것은 채팅 앱이 표준 힙 크기보다 더 필요한 것이 이상한 소리 ...

당신은 힙 크기를 늘릴 수 있지만 더 큰 문제가됩니다
+0

도움이 될 수 내 채팅 앱은 더 많은 기능을 포함하여 약간 큰 편입니다. 내 애플 리케이션의 실행 단지가 있습니다. 그럼 내가 어떻게 할 수 있니? – Vinay

+0

'java -Xmx100m -jar yourjar.jar'와 같은 것이 그것입니다. –

+0

'기능'이 반드시 힙 공간을 차지하지는 않습니다. 클래스는 힙의 'PermGen'부분에로드됩니다. 기본적으로 64MB 힙이 있다고 생각합니다. 그것은 많은 양의 데이터입니다. –

3

"왜 내가 그 예외가 발생 했습니까?" 힙 크기를 늘리면 응용 프로그램이 자체적으로 올바르게 정리되지 않으면 필연적으로 지연됩니다.

Visual VM으로 응용 프로그램을 계측하고 진행 상황을 확인해야합니다. 그러면 단순히 힙 크기를 늘리는 것보다 더 많은 경로를 얻을 수 있습니다.

+0

+1 증상을 치료하지 마십시오. 원인을 치료하십시오! 덕분에 – Terraego

4

단지 JVM의 힙 크기를 늘리십시오. 모든 Java 애플리케이션은 간단한 애플리케이션 일지라도 많은 메모리를 소비합니다. 이 article에서 응용 프로그램에 사용할 수있는 메모리 양을 늘리는 방법을 자세히 설명합니다. 기본적으로 당신이 java 명령을 호출 할 때 다음과 같이 JVM에 추가 매개 변수의 몇 가지를 통과해야합니다 : 위의 명령에서

java -Xms64m -Xmx256m HelloWorld 

을, 나는 HelloWorld 프로그램이 초기 힙을 가져야한다고 말하고 크기는 64MB이고 최대 크기는 256MB입니다. 이 값으로 시도해보고 응용 프로그램에 적합한 값의 조합을 찾을 때까지 그 값으로 조금만 돌아보십시오.

1

인용문

대형 서버 애플리케이션은 이러한 기본적으로 두 가지 문제가 발생합니다. 하나는 초기 힙이 작고 많은 주요 콜렉션에서 의 크기를 조정해야하기 때문에 느린 시작입니다. 보다 큰 문제는 대부분의 서버 응용 프로그램에 대해 대부분의 기본 힙 크기가 부당하게 작다는 것입니다.

인용문은

당신은 자바 -Xms64m -Xmx256m chat_program이 매개 변수를 사용하여 명령 프롬프트를 통해 프로그램을 시작할 수 있습니다. 여기 Xms64m = 64메가바이트 초기 힙 크기 및 Xmx256m = 2백56메가바이트 최대 힙 크기

+0

. 이것은 일어나는 일입니다. 내 서버가 응답하는 데 시간이 걸립니다. – Vinay