2017-06-13 76 views
0

我基本上想要在一段時間間隔內平均得到com.sun.management.OperatingSystemMXBean.getSystemCpuLoad()的結果,比如60秒。在Java(linux)中獲取平均系統CPU使用率一段時間內

java.lang.management.OperatingSystemMXBean has getSystemLoadAverage(),但是從我讀到的,得到'CPU負載'而不是'CPU使用率',這是不同的計算。

是否有預先存在的某種API來獲得我想要的,還是我必須自己實現?

回答

0

如果你想要一個平均是有意義的任何方式,它需要一個平均的一些數據集是大於1

查詢系統當前CPU的負載,以規則的間隔,就像每秒一次,並將每個查詢的結果隨時間保存在某種類的集合中,如數組。在此之後,您可以獲得陣列中最新的60個條目的平均值,這將是您最近60秒的平均CPU負載(精度爲1秒)。

如果你不知道如何平均的東西,那將是average = sum_of_elements_values/number_of_elements

如果您想要某種形式的「絕對」精度而不是1秒精度,所有這些變化都是您必須查詢每個CPU週期。

相關問題