[英]During execution, how can a java program tell how much memory it is using?
在執行過程中,java 程序如何知道它使用了多少內存?
我不在乎它的效率有多高!
VonC 的答案是一個交互式解決方案——如果你想以編程方式知道,你可以使用Runtime.totalMemory()來找出 JVM 使用的總量,並使用Runtime.freeMemory()來找出其中還有多少可用(即它已分配給JVM,但未在JVM內分配 - 新對象可以使用此內存)。
這些是實例方法 - 使用Runtime.getRuntime()首先獲取單例實例。
如果您在某處有一個 java1.6 並且您的程序在 java 1.4.2、1.5或 1.6 中運行,您可以啟動一個visualVM 會話,連接到您的應用程序,並跟蹤內存(以及更多)
(圖片暫時不顯示,請參考監控應用中的說明。)
這不是准確的,但為了粗略估計,只需從Runtime.getRuntime.freeMemory()
減去Runtime.getRuntime.totalMemory()
。 在程序開始時執行此操作,以了解JVM's
開銷內存使用情況,並在執行后的時間間隔內執行此操作。
java.lang.Runtime.totalMemory() 將為您提供所需的信息: http : //java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.