2016-03-22 88 views
0

我一直在網上尋找java的可能性來弄清楚,我的應用程序需要多少CPU,但可惜找不到解決方案。大多數人提到「OperatingSystemMXBean」,它可以在像linux這樣的平臺上工作,但不能在Windows上工作。我的應用程序將在多個操作系統上運行,但主要是在Windows上。那麼有沒有什麼辦法可以在同一個運行時找出Java應用程序的CPU使用情況,這個平臺是獨立的,還是支持多種平臺,包括windows,mac和linux?如何找出Java中的java進程的CPU使用情況

感謝
Baschdi

+0

你可能會在這裏找到了答案:http://stackoverflow.com/questions/16840594/finding-the-average-cpu-usage-for-windows-machine-in-java –

回答

-1

這適用於Windows 10,不錯測量CPU UTIL的Skype:

c:\Windows\system32\typeperf "\Process(Skype)\% processor time" 
+0

很抱歉,但我問了平臺independend的方式來找出Java中的Java應用程序的CPU使用情況。這並不安靜我正在尋找的答案 – Basti

1

我與你的這一說法。在Windows上可以使用OperatingSystemMXBean。只是它有點隱藏。請小心導入軟件包。這不是Eclipse提供的默認值。

import java.lang.management.ManagementFactory; 
import com.sun.management.OperatingSystemMXBean; 

public class Test { 

public static void main(String[] args) { 
    OperatingSystemMXBean operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); 
    System.out.println(operatingSystemMXBean.getProcessCpuLoad()); 
}} 

如果您運行此摘錄可能會獲得0.0。這不是故障。 這只是一個非常輕的程序,CPU負載可能需要一段時間來計算。您可以在第一次調用時獲得-1。在您的應用中嘗試它,恢復各種瞬間的價值。

如果我沒有弄錯,這個類包含在rt.jar中。 您可能會發現一些使用Eclipse IDE導入包的問題。 在這裏你可以找到解釋和如何解決它。 Why is access restricted to jre6/lib/rt.jar for OperatingSystemMxBean?

+0

這適用於Windows。謝謝你的答案。有關其他操作系統的建議?我需要至少支持Windows,Mac和Linux。 com.sun.management.OperatingSystemMXBean是否可以訪問這些數據呢?它是否正常工作?除此之外,即時通訊使用jdk8來構建這個項目,所以我甚至沒有得到限制 – Basti

+0

如果您使用Eclipse IDE開發代碼,限制僅作爲警告出現。我認爲這個bean在這些操作系統中是可用的。我已經在Unix中正確地測試了它,但是沒有在Mac中進行測試,但它包含在Java運行時。如果你可以執行java代碼,你可以使用它。 – RubioRic

相關問題