Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在执行过程中,java程序如何判断它使用了多少内存?_Java_Memory_Runtime - Fatal编程技术网

在执行过程中,java程序如何判断它使用了多少内存?

在执行过程中,java程序如何判断它使用了多少内存?,java,memory,runtime,Java,Memory,Runtime,在执行过程中,java程序如何判断它使用了多少内存 我不管它有多高效 如果您在某处有一个java1.6,并且您的程序运行在java1.4.2、1.5或1.6中,您可以启动,连接到应用程序,并跟踪内存(以及更多) (图像目前未显示,因此请参考以获取说明。)

在执行过程中,java程序如何判断它使用了多少内存


我不管它有多高效

如果您在某处有一个java1.6,并且您的程序运行在java1.4.2、1.5或1.6中,您可以启动,连接到应用程序,并跟踪内存(以及更多)


(图像目前未显示,因此请参考以获取说明。)

这不准确,但粗略估计,只需从
Runtime.getRuntime.totalMemory()中减去
Runtime.getRuntime.freeMemory()

在程序开始时这样做,以了解
JVM的开销内存使用情况,并每隔一段时间执行一次。

VonC的答案是一个交互式解决方案-如果您想通过编程了解,您可以使用它来找出JVM使用的总内存量,并找出其中有多少仍然可用(也就是说,它被分配给JVM,但没有在JVM中分配-新对象可以使用这个内存)


这些是实例方法-用于首先获取singleton实例。

谢谢CMS,谢谢投票支持此方法的人…考虑到这不完全是用户要求的;)你是正确的(我最初的反应是从外部进行监视),+1对你;)乔恩·斯基特,你好,你能告诉我如何为C#做同样的事情吗?在java中,我会从总数中减去free,对吗?在C#中,我只在Process类中找到PrivateMemorySize64,但我假设它只提供总内存,对吗?@paul1076:最好为此提出一个新问题。@JonSkeet@JonSkeet看起来像是一个已被关闭的重复,很抱歉,这是为什么只链接的答案不好的一个主要例子。我建议你把它全部删除,因为其他答案提供了所有必要的信息。@leonheess:如果你仔细观察,我的答案不是一个链接式的答案。我给出了答案,并提供了额外信息的链接。请再看一看!我投了反对票,因为你的答案除了一个死链接外没有其他解释。通常我会鼓励你添加一个解释,但其他答案已经涵盖了这一需要。