在HTOP中,您可以看到RES值(常駐大小),它顯示了您的JVM進程真正採用了多少內存。通過Java獲得當前JVM的真實RAM使用情況
現在我只想使用純Java通過獲得該值。如果你告訴我這是不可能的,那也沒關係。
讓我解釋一下我所用,顯示887M的HTOP一個RES值的申請而作出的嘗試:
- 通過MemoryMXBean結合致力於HeapMemory和非Heapmemory給了我7.26億
- 添加了所有COMMITED內存所有ManagementFactory.getMemoryPoolMXBeans的()給了我737M
- runtime.totalMemory()提供515M
任何想法還有什麼我可以嘗試?
有沒有純Java功能會給你這個。您可以通過一些假設估計它會是什麼,但是您缺少內存映射文件,線程堆棧,共享庫和直接內存,這些內容不包括在您提到的會計中。在我編寫的程序中,如果你正確地使用它們,內存映射文件可以超過一切。 – 2014-10-31 14:28:03
所以我基本上被迫使用頂級外部工具或使用JNI魔法? – Traubenfuchs 2014-10-31 14:32:53
正確,但通常情況下,您將有一個外部程序監視您的使用情況,您希望根據此數字在應用程序中執行什麼操作?注意:擁有低數字可能是一件壞事,高數字可能是件好事。 – 2014-10-31 14:34:41