Java程序性能(运行时间和内存消耗)

时间:2009-10-15 16:44:58

标签: java memory performance

我可以使用哪些工具来了解程序的生命周期或运行时间(从开始到程序结束)?我还想知道程序从头到尾消耗了多少内存。该程序是用Java编写的,我在Windows XP上运行它。

7 个答案:

答案 0 :(得分:2)

你可以使用JConsole,这里有article描述它的用法

alt text

答案 1 :(得分:1)

如果您使用的是* nix,则可以使用'time'命令。对于Windows,请参阅this other SO thread

答案 2 :(得分:1)

您检查了Dynatrace吗?商业的,但对你正在寻找的东西非常有用。一直在使用它,发现跟踪执行路径,每个api上花费的时间等非常有用。

答案 3 :(得分:0)

“程序花费多少时间”是一个棘手的问题,答案会有很大差异,具体取决于操作系统磁盘缓存的状态,以及是否包含JVM本身的启动时间等。

您问题的其他部分更容易回答:您需要profiler。分析器不仅可以告诉您总内存统计信息(或总运行时间),还可以查明程序中的故障点,每单位时间创建过多对象的区域,或者烧毁大量CPU相关的位置到你代码中的其他地方。

答案 4 :(得分:0)

如果您对监控感兴趣,可以使用jconsole作为JDK的一部分。否则,请详细说明你的问题。

答案 5 :(得分:0)

您可以尝试使用JDK附带的jconsole工具监控您的应用程序。如果这还不够,我会尝试使用类似YourKit的内容来分析您的应用程序。它是一种商业产品,但非常有用。

我知道NetBeans内置了一个分析器,但我还没有使用它。如果您正在使用NetBeans,那么也可以选择。

答案 6 :(得分:0)

我使用来自Sun的VisualVM,非常好,有很多useful features。您可以监视堆空间使用情况,已加载类,GC活动和实时线程。

您也可以对远程Java应用程序执行相同的操作。