我在BlueJ運行了幾個Java程序。我希望能夠知道程序對給定輸入值使用多少內存。有什麼辦法可以做到這一點?如何查找程序使用的內存量?
回答
1),以獲得您的Java應用程序可以使用Runtime的最大內存量:多少內存JVM已經分配給您的應用程序
Runtime runtime = Runtime.getRuntime();
System.out.println("max memory: " + runtime.maxMemory()/1024);
2)獲得:
Runtime runtime = Runtime.getRuntime();
System.out.println("allocated memory: " + runtime.totalMemory()/1024);
3)獲得您的應用程序正在使用多少內存:
Runtime runtime = Runtime.getRuntime();
System.out.println("free memory: " + runtime.freeMemory()/1024);
這隻適用於通過Java分配的內存 –
對於第一個答案Nod不好。爲了您未來的答案:適當地格式化代碼(用四個空格縮進),並且可能鏈接到相關文檔 –
它可能是operating system特定;值得注意的是JVM管理Java分配的內存,但您可能使用JNI(也就是您的Java程序調用OpenCV函數)使用JNI調用C++中的外部函數,並且您可能對當前的process的virtual address space感興趣。在Linux上,您可以使用proc(5)並閱讀並解析/proc/self/statm
或/proc/self/stat
或/proc/self/status
。如果你的進程有pid 1234,你也可以在另一個終端上嘗試cat /proc/1234/maps
,或者使用pmap(1)。在其他操作系統上,您需要深入瞭解相應的文檔。
如果您只關心JVM直接使用的內存,請使用Runtime class作爲answered by Hans。
順便說一句,你的JVM有一個garbage collector,所以定義確切的內存使用量不是微不足道的。
- 1. 查找和使用現有程序中的內存偏移量?
- 2. 如何查找內存進食程序
- 3. 如何查找「胖」程序的內存使用情況?
- 4. 如何查找Haskell中程序的內存使用情況
- 5. 如何找出使用的內存量
- 6. 如何查找NSString使用的內存?
- 7. 如何查找的內存量在RAM中使用的Java
- 8. 如何查找Java應用程序中的內存泄漏?
- 9. 查找程序中分配的內存?
- 10. 如何降低我的應用程序的內存使用量?
- 11. 如何使用valgrind查找Android應用程序的內存泄漏
- 12. 如何在WPF應用程序中查找內存泄漏
- 13. 如何在Phonegap應用程序中查找內存泄漏
- 14. 如何在android中查找特定進程使用的內存?
- 15. 如何測量java應用程序的使用內存?
- 16. 如何獲得的內存應用程序使用量
- 17. 如何減少WPF應用程序的內存使用量
- 18. 如何減少Socket應用程序的C#內存使用量
- 19. 如何找出爲什麼rails應用程序使用大量內存?
- 20. 如何讓我的程序的最大內存使用量OSX
- 21. 如何在Android應用程序中使用LeakCanary查找內存泄漏?
- 22. 如何檢查Pthread程序中使用的內核數量?
- 23. 如何爲使用Robotium的應用程序自動分配內存(查找內存泄漏)
- 24. VS2010 - 如何查看程序的內存使用情況?
- 25. 如何在當前程序狀態下查找最大可分配內存量
- 26. 無法使用內存搜索程序查找給定值
- 27. 程序如何分配大量內存?
- 28. 如何通過python程序減少CPU和內存使用量?
- 29. 如何查找使用大多數內存進行排序的查詢
- 30. 如何在DDMS中查找android應用程序的CPU和內存利用率?
你的問題可能與BlueJ無關。您可以使用其他IDE(或Java編譯器)。所以我想你需要刪除'bluej'標籤 –