java 웹 응용 프로그램을 개발 중이며 Tomcat 7 서버에서 실행 중입니다. 나는 호출하여 메모리의 크기를 확인하고 있습니다 :Tomcat JVM의 크기는 가변적입니까?
System.out.println("Total memory is: " + Runtime.getRuntime().totalMemory());
것은 내가 내 데이터의 크기가 Runtime.getRuntime().totalMemory()
뿐만 아니라 커질 큰 가져올 때 크기가 변화하고 있음을 나타 납니까 무엇.
1- JVM이 응용 프로그램 데이터의 크기보다 커지려고합니까?
2- RAM 메모리 크기 이외의 JVM 크기에는 제한이 있습니까?
3- 위의 두 가지와 관련이없는 세 번째 질문 : 실행중인 Tomcat 7 서버 응용 프로그램의 크기는 얼마입니까? 실제로 나는 나의 서버 (아마존 클라우드 서버, 무료 타이어, 600 MB RAM)에 작은 RAM을 가지고있다. 그리고 JAVA가 웹 애플리케이션을 배치하지 않고 약 52 %의 메모리를 차지하고 있다는 것을 알아 차렸다.
매우 기본적인 질문에 실례합니다. 웹 서버 및 웹 응용 프로그램에 익숙하지 않습니다.
[가비지 수집기가 작동 할 때] 개체 힙이 동적으로 커지고 축소됩니다 (http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html). :-) – oldrinb
최소 및 최대 힙 크기를 제어하는 방법은 [이 게시물에 설명되어 있습니다.] (http://stackoverflow.com/questions/1098488/jvm-heap-parameters). 기본적으로 힙은 계속 증가 할 것이고 GC는 결국 적합한 개체를 복구하기 위해 시작될 것입니다. 응용 프로그램에 메모리 누수가있는 경우 서버 설정의 한계에 따라 결국 'OutOfMemory' 예외가 발생합니다 – Brad