如何检查java程序使用多少资源?

问题描述:

如何检查java程序使用多少资源?如何检查java程序使用多少资源?

在java中,创建一个很好的程序几乎可以完成你想要的任何事情,但是有一点副作用是非常容易的,它也很容易被错误地间接分配给很多内存和cpu周期(比如让我们只是在错误的地方多次使用“新”)。

如果程序应该运行在资源非常有限的环境中,那么我们来说一些嵌入式或者可能是手机(J2ME,Android等), 知道资源如何占用您的程序至关重要是。

注:因为我的主要重点是c中的最后几年我可能失去了一些东西很简单的在这里,所以请不要承担太多;)

感谢 约翰

maxMemory(); 
totalMemory(); 
freeMemory(); 
+0

尼斯链接,谢谢 – Johan 2009-06-29 08:03:13

+0

死链接?(截至2016年7月22日) – dustmachine 2016-07-22 16:54:39

如果您正试图在程序之外捕获这些属性以进行性能测试;你可能也想使用Java Profiler。那里有很好的分析器。 Java 6还提供了一个可以执行这些类型的活动。例如 J Profiler 如果你想要更多这样的工具;让我知道。

由于Java 1.6中有一组工具允许监视JVM。其中之一是jmap。你可以看看它。我不太确定它是如何应用于J2ME的,但我猜想你可以将相同的技术应用于计算机上的J2ME模拟器(使用完整的JVM,而不是KVM)。

你似乎对你真正需要的东西有些困惑。在你的问题中,我感觉到一些不安:“稍后Java会吞噬多少资源来咬我”?

答案是这样的,用道格拉斯亚当斯的话来说:“不要恐慌!” :-)。

严重的是,Java不一定比“本地”应用程序使用更多的资源,因此您可能不必担心。

的简要介绍:

  • Java程序会因为JVM的一个固定的内存开销,即连一个简单的程序会吃内存的几MB。然而,这对于更复杂的软件来说不会增长,所以它在实践中通常不是问题。另外,并行运行的几个Java虚拟机将共享大量的RAM。
  • CPU:通常,Java程序将使用与同等本机程序相同的CPU时间。 Java不需要更多的根本原因。垃圾收集确实有一些开销,但通常并不重要(手动内存管理也有开销)。这就是说,像意外对象保留或不必要的大对象可能会导致内存问题。但是,当它出现时,这是一个问题。

简短版本:不要担心,只要按照以下方法操作即可:使其运行正常,使其运行速度更快(通过分析)。