Hallo,
ich habe so meine Probleme nachzuvollziehen, was für Speicher Java unter Linux verbraucht.
Ich habe ein minimales Testprogramm:
wenn ich mir den Prozess mit TOP ansehe erhalte ich folgende Werte
wenn in mit Java -Xms2m -Xmx2m memo aufrufe, erhalte ich
Ich interpretiere das zuerstmalö so:
code ist der Teil der VM, der im Speicher vorgehlaten werden muss, um mein Programm auszuführen.
Data ist: stack der VM, der Bytecode, der Heap der JVM, der im Speicher vorgehalten werden muss.
meine Fragen hierzu.
1) lt Doku ist Res der im Speicher vorgehaltene Teil des virtual memory des prozesses, und es soll gelten Res =code+data, das stimmt hier aber nicht!
2) wie ist der riesige data Bedarf für dieses minimale javaprogramm zu erklären.
ich habe so meine Probleme nachzuvollziehen, was für Speicher Java unter Linux verbraucht.
Ich habe ein minimales Testprogramm:
Code:
public class memo
{ public static void main(String[] args)
{ System.out.println("this is memo");
try { Thread.currentThread().sleep(60000); } catch (Exception e) { System.out.println(e);}
System.out.println("Fertig");
}
}
wenn ich mir den Prozess mit TOP ansehe erhalte ich folgende Werte
Code:
Virt 257m
Res 11m
Swap 245m
SHR 6m
Data 202m
code 60k
wenn in mit Java -Xms2m -Xmx2m memo aufrufe, erhalte ich
Code:
Virt 194m
Res 11m
Swap 183m
SHR 6m
Data 140m
code 60k
Ich interpretiere das zuerstmalö so:
code ist der Teil der VM, der im Speicher vorgehlaten werden muss, um mein Programm auszuführen.
Data ist: stack der VM, der Bytecode, der Heap der JVM, der im Speicher vorgehalten werden muss.
meine Fragen hierzu.
1) lt Doku ist Res der im Speicher vorgehaltene Teil des virtual memory des prozesses, und es soll gelten Res =code+data, das stimmt hier aber nicht!
2) wie ist der riesige data Bedarf für dieses minimale javaprogramm zu erklären.