我正在編寫一個應用程序,該應用程序創建JVM並需要控制由JVM產生的進程的內存使用情況。如何控制由JVM產生的進程的內存使用情況
0
A
回答
0
如果通過「控制」你的意思是「限制到一個已知的上限」,那麼你可以簡單地傳遞
-Xms`lower_bound`
和
-Xmx`upper_bound`
到虛擬機的ARGS當你產卵的過程。 see the approproate setting here
+0
問題不是關於JVM堆內存,而是由JVM產生的進程系統內存(單獨進程) – Lambder
2
您可以使用JMX連接到JVM進程以獲取有關內存狀態/分配的信息,並引發垃圾回收。但是您首先需要啓用JVM的JMX監視:http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html。
2
我假設你正在談論非Java的「進程」使用Runtime.exec(...)
等
答案人丁是,這是操作系統,標準的Java庫,支持特定的而不是別的。但是,如果你要做到這一點在Linux中(或UNIX),我能想到的三種方法:
- 了Java通過使用該
ulimit
內置減少內存限制,然後exec
一個殼包裝腳本產卵命令實際的命令;見man 1 ulimit
。 - 編寫一個與shell包裝器相同的C命令。這比包裝腳本方法的開銷少。
- 試着用JNI和本地代碼庫做同樣的事情。不建議這樣做,因爲您可能需要複製
Process
和ProcessBuilder
的行爲,這可能非常困難。
相關問題
- 1. 如何控制多線程中的內存使用情況?
- 2. ArrayList VS Vector JVM內存使用情況
- 3. JVM內存和CPU使用情況的實際限制?
- 4. 如何查看Play框架的JVM內存使用情況
- 5. 如何優化JVM的內存使用情況?
- 6. 監控進程的CPU和內存使用情況
- 7. 如何在Windows中控制MongoDB的內存使用情況?
- 8. 如何限制iOS應用程序的內存使用情況
- 9. 如何優化php進程的內存使用情況?
- 10. 如何獲取node.js中的子進程內存使用情況?
- 11. 如何跟蹤linux中進程的cpu /內存使用情況?
- 12. 如何獲得已啓動進程的內存使用情況
- 13. 有沒有辦法控制python進程的內存使用情況?
- 14. 使用的產生由「控制」幫手
- 15. Linux:如何測量進程內線程的內存使用情況?
- 16. 使用本機進程的Java內存使用情況
- 17. 使用'top'查看進程的內存使用情況
- 18. 如何知道使用WMI的進程的CPU和內存使用情況?
- 19. 如何監控在Heroku上的內存使用情況(node.js的)
- 20. Java中線程或進程的內存使用情況
- 21. 從我的應用程序中訪問JVM的內存使用情況?
- 22. .NET事件導致無法控制的內存使用情況
- 23. 如何使用.NET CF 3.5獲取進程的內存使用情況?
- 24. 監控內存使用情況
- 25. 如何監控linux的內存使用情況?
- 26. 使用進程ID獲取進程的實際內存使用情況
- 27. 監控每個線程的內存使用情況
- 28. Apache使用全部16 GB內存,如何限制其進程和內存使用情況?
- 29. 在Cocoa/Objectice-C中測量進程的內存使用情況?
- 30. 預測進程的內存使用情況
你是什麼意思的「控制」?請詳細說明 – sfussenegger
進程分配的準確內存?或者說堆是-Xmx足夠好? – leonm