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

Joh*_*han 4 java embedded optimization

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

在java中,很容易创建一个很好的程序,几乎可以完成你想要的所有程序,但是有一点副作用就是很容易间接地分配到很多内存和cpu周期(即让我们只使用"new" "在错误的地方几次).

如果该程序应该在资源非常有限的环境中运行,那么让我们说一些内置的东西或者手机(J2ME,Android等等),了解你的程序资源是多么重要是至关重要的.

注意:由于我的主要关注点是过去几年我在这里可能会遗漏一些非常简单的东西,所以请不要假设太多;)

谢谢约翰

Chr*_*eis 5

maxMemory();
totalMemory();
freeMemory();
Run Code Online (Sandbox Code Playgroud)


sle*_*ske 5

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

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

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

快速概述:

  • 由于 JVM,Java 程序将具有固定的内存开销,即即使是一个简单的程序也会占用几 MB 的内存。然而,对于更复杂的软件来说,这不会增长,因此在实践中通常不是问题。此外,并行运行的多个 Java VM 将共享大部分 RAM。
  • CPU:一般来说,Java 程序将使用与等效的本机程序相同的 CPU 时间。Java 并没有需要更多的根本原因。垃圾收集确实有一些开销,但通常并不重要(并且手动内存管理也有开销)。
  • 也就是说,意外的对象保留或不必要的大对象之类的事情可能会导致内存问题。但这是当问题出现时你要解决的问题。

简短版本:别担心,只需像往常一样操作即可:使其运行、使其正确运行、使其快速运行(通过分析)。