2009-06-29 31 views
4

如何檢查java程序使用多少資源?如何檢查java程序使用多少資源?

在java中,創建一個很好的程序幾乎可以完成你想要的任何事情,但是有一點副作用是非常容易的,它也很容易被錯誤地間接分配給很多內存和cpu週期(比如讓我們只是在錯誤的地方多次使用「新」)。

如果程序應該運行在資源非常有限的環境中,那麼我們來說一些嵌入式或者可能是手機(J2ME,Android等), 知道資源如何佔用您的程序至關重要是。

注:因爲我的主要重點是c中的最後幾年我可能失去了一些東西很簡單的在這裏,所以請不要承擔太多;)

感謝 約翰

回答

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

尼斯鏈接,謝謝 – Johan 2009-06-29 08:03:13

+0

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

1

如果您正試圖在程序之外捕獲這些屬性以進行性能測試;你可能也想使用Java Profiler。那裏有很好的分析器。 Java 6還提供了一個可以執行這些類型的活動。例如 J Profiler 如果你想要更多這樣的工具;讓我知道。

0

由於Java 1.6中有一組工具允許監視JVM。其中之一是jmap。你可以看看它。我不太確定它是如何應用於J2ME的,但我猜想你可以將相同的技術應用於計算機上的J2ME模擬器(使用完整的JVM,而不是KVM)。

4

你似乎對你真正需要的東西有些困惑。在你的問題中,我感覺到一些不安:「稍後Java會吞噬多少資源來咬我」?

答案是這樣的,用道格拉斯亞當斯的話來說:「不要恐慌!」 :-)。

嚴重的是,Java不一定比「本地」應用程序使用更多的資源,因此您可能不必擔心。

的簡要介紹:

  • Java程序會因爲JVM的一個固定的內存開銷,即連一個簡單的程序會吃內存的幾MB。然而,這對於更復雜的軟件來說不會增長,所以它在實踐中通常不是問題。另外,並行運行的幾個Java虛擬機將共享大量的RAM。
  • CPU:通常,Java程序將使用與同等本機程序相同的CPU時間。 Java不需要更多的根本原因。垃圾收集確實有一些開銷,但通常並不重要(手動內存管理也有開銷)。這就是說,像意外對象保留或不必要的大對象可能會導致內存問題。但是,當它出現時,這是一個問題。

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

相關問題