Szukałem już możliwych rozwiązań, takich jak How to monitor the computer's cpu, memory, and disk usage in Java?. Ale pamięć spędzona w buforach i pamięci podręcznej nie jest nigdzie wspomniana?Jak monitorować wolną pamięć (w tym bufory i pamięć podręczną) w java?
Na przykład, w systemie Linux, wyjście free -m:
total used free shared buffers cached Mem: 2011 1835 175 0 309 847 -/+ buffers/cache: 678 1333 Swap: 1998 0 1998
Ja już testowany wyjście sigar, który raportuje jako wolnej pamięci 175 MB.
Przyczyna tego pytania brzmi: jak wykryć, kiedy system operacyjny ma mało pamięci? W poprzednim wydaniu free -m
, 175 MB wydaje się dość niskie; ale przez dodanie buforów i pamięci podręcznej jest oczywiste, że wolna pamięć to faktycznie 1333 MB z 2 GB.
Podsumowując, używając java, czy można uzyskać wartość 1333 MB jako wartość wolnej pamięci? Jak już wspomniałem, do tej pory wiem tylko jak zdobyć wartość 175 MB.
Ponieważ odpowiedź może być zależna od systemu operacyjnego, możesz chcieć określić, który system operacyjny (OS) musisz obsługiwać. Tylko Linux? – NPE
Cóż, celem jest linux, ale wolałbym, jeśli jest to rozwiązanie wieloplatformowe. Nie mam pod ręką komputera z systemem Windows, aby sprawdzić, więc nie wiem, czy okna również raportują pamięć podręczną/buforowaną osobno. Eksperci od systemu Windows są mile widziani: D – bbaja42
Z tego, co zebrałem [tutaj] (http://www.codinghorror.com/blog/2006/09/why-does-vista-use-all-my-memory.html), na podstawie obrazek przedstawiający menedżera zadań Windows, Windows ma również oddzielną pamięć całkowitą, wolną pamięć i pamięć podręczną. – bbaja42