2012-03-28 3 views
0

고정 된 메모리 제한으로 JVM을 바인딩하고 싶습니다. 어느 누구도이 일을하는 방법을 도울 수 있습니까?고정 메모리 제한으로 JVM을 바인딩하는 방법은 무엇입니까?

더 구체적으로 말하자면, 내 코드가 최대 1024MB의 메모리 공간을 사용할 수 있고 JVM이 처음에는 그만큼의 메모리를 차단해야합니다.

또 다른 것은 4GB의 메모리가 있지만 JVM은 878MB의 메모리 만 보여줍니다. 왜 ? Runtime runtime = Runtime.getRuntime()runtime.totalMemory()/(1024*1024)

을 C는 문제의이 종류를하지 않은 이유 :

나는 사용하여있어? 다음 옵션

와 '자바'를 실행할 수 있습니다

답변

1

가 필요한 것보다 당신이 인사의 세계가있는 경우 자바는 더 많은 메모리를 사용하지 않습니다 프로그램을 사용하는 경우 최대 값 설정에 관계없이 1GB를 사용하지 않습니다.

C에서 메모리는 사용되거나 해제됩니다. 메모리에 대한 다른 상태는 없습니다. Java에서는 문자열 참조, 소프트 참조, 약한 참조 및 참조가없는 메모리가 있습니다. 메모리를 정리할시기와 소프트/취약 참조가 정리되는지 여부를 결정하는 최대 메모리입니다.

C 메모리의 문제점은 메모리가 더 이상 사용되지 않을 때 개발자에게 노출되는 메모리 누수 및/또는 추가 복잡성을 초래할 수 있다는 것을 알아야한다는 것입니다. 자바는 관리 메모리를 가지고 있기 때문에 이러한 문제를 가지고 있지 않다.

C 프로그램도 메모리 + 스왑이 부족할 때까지 확장 할 수있는 문제가 있습니다. 잘 작동하는 프로그램의 경우 이것은 문제가되지 않지만 개발자가 걱정해야 할 또 다른 사항은 프로그램이 실행될 시스템의 메모리 용량을 모르기 때문에 걱정할 필요가 있다는 것입니다.

0

최소 메모리 크기 가 최대 메모리 크기를 -xxs -Xms

+3

-Xmx는 힙 메모리를 최대화하는 데 사용됩니다. –

관련 문제