java获得CPU使用率

java获得CPU使用率
java获得CPU使用率

java获得CPU使用率,系统内存,虚拟机内存等情况(不用JNI)

2009年10月23日星期五16:30

在Java中,可以获得总的物理内存、剩余的物理内存、已使用的物理内存等信息,下面例子可以取得这些信息,并且获得在Windows下的内存使用率。

首先编写一个MonitorInfoBean类,用来装载监控的一些信息,包括物理内存、剩余的物理内存、已使用的物理内存、内存使用率等字段,该类的代码如下:

package com.hmw.system.monitor;

public class MonitorInfoBean {

/** 可使用内存. */

private long totalMemory;

/** 剩余内存. */

private long freeMemory;

/** 最大可使用内存. */

private long maxMemory;

/** 操作系统. */

private String osName;

/** 总的物理内存. */

private long totalMemorySize;

/** 剩余的物理内存. */

private long freePhysicalMemorySize;

/** 已使用的物理内存. */

private long usedMemory;

/** 线程总数. */

private int totalThread;

/** cpu使用率. */

private double cpuRatio;

public long getFreeMemory() {

return freeMemory;

}

public void setFreeMemory(long freeMemory) {

this.freeMemory = freeMemory;

}

public long getFreePhysicalMemorySize() {

return freePhysicalMemorySize;

}

public void setFreePhysicalMemorySize(long freePhysicalMemorySize) { this.freePhysicalMemorySize = freePhysicalMemorySize;

}

public long getMaxMemory() {

return maxMemory;

}

public void setMaxMemory(long maxMemory) {

this.maxMemory = maxMemory;

}

public String getOsName() {

return osName;

}

public void setOsName(String osName) {

this.osName = osName;

}

public long getTotalMemory() {

return totalMemory;

}

public void setTotalMemory(long totalMemory) {

this.totalMemory = totalMemory;

}

public long getTotalMemorySize() {

return totalMemorySize;

}

public void setTotalMemorySize(long totalMemorySize) { this.totalMemorySize = totalMemorySize;

}

public int getTotalThread() {

return totalThread;

}

public void setTotalThread(int totalThread) {

this.totalThread = totalThread;

}

public long getUsedMemory() {

return usedMemory;

}

public void setUsedMemory(long usedMemory) {

https://www.360docs.net/doc/913598665.html,edMemory = usedMemory;

}

public double getCpuRatio() {

return cpuRatio;

}

public void setCpuRatio(double cpuRatio) {

this.cpuRatio = cpuRatio;

}

}

接着编写一个获得当前的监控信息的接口,该类的代码如下所示:package com.hmw.system.monitor;

/**

* 获取系统信息的业务逻辑类接口.

*/

public interface IMonitorService {

/**

* 获得当前的监控对象.

* @return 返回构造好的监控对象

* @throws Exception

*/

public MonitorInfoBean getMonitorInfoBean() throws Exception; }

该类的实现类MonitorServiceImpl如下所示:

package com.hmw.system.monitor;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

import java.util.StringTokenizer;

import sun.management.ManagementFactory;

import com.sun.management.OperatingSystemMXBean;

/**

*

* 获取系统信息的业务逻辑实现类.

*

* @author GuoHuang

*/

public class MonitorServiceImpl implements IMonitorService { private static final int CPUTIME = 30;

private static final int PERCENT = 100;

private static final int FAULTLENGTH = 10;

private static String linuxVersion = null;

/**

* 获得当前的监控对象.

*

* @return 返回构造好的监控对象

* @throws Exception

* @author GuoHuang

*/

public MonitorInfoBean getMonitorInfoBean() throws Exception { int kb = 1024;

// 可使用内存

long totalMemory = Runtime.getRuntime().totalMemory() / kb; // 剩余内存

long freeMemory = Runtime.getRuntime().freeMemory() / kb;

// 最大可使用内存

long maxMemory = Runtime.getRuntime().maxMemory() / kb; OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();

// 操作系统

String osName = System.getProperty("https://www.360docs.net/doc/913598665.html,");

// 总的物理内存

long totalMemorySize = osmxb.getTotalPhysicalMemorySize() / kb;

// 剩余的物理内存

long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize() / kb;

// 已使用的物理内存

long usedMemory = (osmxb.getTotalPhysicalMemorySize() - osmxb.getFreePhysicalMemorySize()) / kb;

// 获得线程总数

ThreadGroup parentThread;

for (parentThread = Thread.currentThread().getThreadGroup(); parentThread.getParent() != null; parentThread = parentThread.getParent());

int totalThread = parentThread.activeCount();

double cpuRatio = 0;

if (osName.toLowerCase().startsWith("windows")) {

cpuRatio = this.getCpuRatioForWindows();

} else {

cpuRatio = getCpuRateForLinux();

}

// 构造返回对象

MonitorInfoBean infoBean = new MonitorInfoBean();

infoBean.setFreeMemory(freeMemory);

infoBean.setFreePhysicalMemorySize(freePhysicalMemorySize); infoBean.setMaxMemory(maxMemory);

infoBean.setOsName(osName);

infoBean.setTotalMemory(totalMemory);

infoBean.setTotalMemorySize(totalMemorySize);

infoBean.setTotalThread(totalThread);

infoBean.setUsedMemory(usedMemory);

infoBean.setCpuRatio(cpuRatio);

return infoBean;

}

private static double getCpuRateForLinux() {

InputStream is = null;

InputStreamReader isr = null;

BufferedReader brStat = null;

StringTokenizer tokenStat = null;

try {

System.out.println("Get usage rate of CUP , linux version: " + linuxVersion); Process process = Runtime.getRuntime().exec("top -b -n 1");

is = process.getInputStream();

isr = new InputStreamReader(is);

brStat = new BufferedReader(isr);

if (linuxVersion.equals("2.4")) {

brStat.readLine();

brStat.readLine();

brStat.readLine();

brStat.readLine();

tokenStat = new StringTokenizer(brStat.readLine()); tokenStat.nextToken();

tokenStat.nextToken();

String user = tokenStat.nextToken();

tokenStat.nextToken();

String system = tokenStat.nextToken();

tokenStat.nextToken();

String nice = tokenStat.nextToken();

System.out.println(user + " , " + system + " , " + nice); user = user.substring(0, user.indexOf("%"));

system = system.substring(0, system.indexOf("%")); nice = nice.substring(0, nice.indexOf("%"));

float userUsage = new Float(user).floatValue();

float systemUsage = new Float(system).floatValue(); float niceUsage = new Float(nice).floatValue();

return (userUsage + systemUsage + niceUsage) / 100; } else {

brStat.readLine();

brStat.readLine();

tokenStat = new StringTokenizer(brStat.readLine());

tokenStat.nextToken();

tokenStat.nextToken();

tokenStat.nextToken();

tokenStat.nextToken();

tokenStat.nextToken();

tokenStat.nextToken();

tokenStat.nextToken();

String cpuUsage = tokenStat.nextToken();

System.out.println("CPU idle : " + cpuUsage);

Float usage = new Float(cpuUsage.substring(0, cpuUsage.indexOf("%")));

return (1 - usage.floatValue() / 100);

}

} catch (IOException ioe) {

System.out.println(ioe.getMessage());

freeResource(is, isr, brStat);

return 1;

} finally {

freeResource(is, isr, brStat);

}

}

private static void freeResource(InputStream is, InputStreamReader isr, BufferedReader br) {

try {

if (is != null)

is.close();

if (isr != null)

isr.close();

if (br != null)

br.close();

} catch (IOException ioe) {

System.out.println(ioe.getMessage());

}

}

/**

* 获得CPU使用率.

*

* @return 返回cpu使用率

* @author GuoHuang

*/

private double getCpuRatioForWindows() {

try {

String procCmd = System.getenv("windir") + "\\system32\\wbem\\wmic.exe process get

Caption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount // 取进程信息

long[] c0 = readCpu(Runtime.getRuntime().exec(procCmd));

Thread.sleep(CPUTIME);

long[] c1 = readCpu(Runtime.getRuntime().exec(procCmd));

if (c0 != null && c1 != null) {

long idletime = c1[0] - c0[0];

long busytime = c1[1] - c0[1];

return Double.valueOf(PERCENT * (busytime) / (busytime + idletime)).doubleValue();

} else {

return 0.0;

}

} catch (Exception ex) {

ex.printStackTrace();

return 0.0;

}

}

/**

* 读取CPU信息.

* @param proc

* @return

* @author GuoHuang

*/

private long[] readCpu(final Process proc) {

long[] retn = new long[2];

try {

proc.getOutputStream().close();

InputStreamReader ir = new InputStreamReader(proc.getInputStream()); LineNumberReader input = new LineNumberReader(ir);

String line = input.readLine();

if (line == null || line.length() < FAULTLENGTH) {

return null;

}

int capidx = line.indexOf("Caption");

int cmdidx = line.indexOf("CommandLine");

int rocidx = line.indexOf("ReadOperationCount");

int umtidx = line.indexOf("UserModeTime");

int kmtidx = line.indexOf("KernelModeTime");

int wocidx = line.indexOf("WriteOperationCount");

long idletime = 0;

long kneltime = 0;

long usertime = 0;

while ((line = input.readLine()) != null) {

if (line.length() < wocidx) {

continue;

}

// 字段出现顺序:Caption,CommandLine,KernelModeTime,ReadOperationCount, // ThreadCount,UserModeTime,WriteOperation

String caption = Bytes.substring(line, capidx, cmdidx - 1).trim();

String cmd = Bytes.substring(line, cmdidx, kmtidx - 1).trim();

if (cmd.indexOf("wmic.exe") >= 0) {

continue;

}

String s1 = Bytes.substring(line, kmtidx, rocidx - 1).trim();

String s2 = Bytes.substring(line, umtidx, wocidx - 1).trim();

if (caption.equals("System Idle Process") || caption.equals("System")) {

if (s1.length() > 0)

idletime += Long.valueOf(s1).longValue();

if (s2.length() > 0)

idletime += Long.valueOf(s2).longValue();

continue;

}

if (s1.length() > 0)

kneltime += Long.valueOf(s1).longValue();

if (s2.length() > 0)

usertime += Long.valueOf(s2).longValue();

}

retn[0] = idletime;

retn[1] = kneltime + usertime; return retn;

} catch (Exception ex) {

ex.printStackTrace();

} finally {

try {

proc.getInputStream().close(); } catch (Exception e) {

e.printStackTrace();

}

}

return null;

}

/**

* 测试方法.

*

* @param args

* @throws Exception

* @author GuoHuang

*/

public static void main(String[] args) throws Exception {

IMonitorService service = new MonitorServiceImpl();

MonitorInfoBean monitorInfo = service.getMonitorInfoBean();

System.out.println("cpu占有率=" + monitorInfo.getCpuRatio());

System.out.println("可使用内存=" + monitorInfo.getTotalMemory());

System.out.println("剩余内存=" + monitorInfo.getFreeMemory());

System.out.println("最大可使用内存=" + monitorInfo.getMaxMemory());

System.out.println("操作系统=" + monitorInfo.getOsName());

System.out.println("总的物理内存=" + monitorInfo.getTotalMemorySize() + "kb");

System.out.println("剩余的物理内存=" + monitorInfo.getFreeMemory() + "kb");

System.out.println("已使用的物理内存=" + monitorInfo.getUsedMemory() + "kb");

System.out.println("线程总数=" + monitorInfo.getTotalThread() + "kb");

}

}

该实现类中需要用到一个自己编写byte的工具类,该类的代码如下所示:

package com.hmw.system.monitor;

/**

* byte操作类.

*/

public class Bytes {

/**

* 由于String.subString对汉字处理存在问题(把一个汉字视为一个字节),因此在包含汉字的字符串时存在隐患,

现调整如下:

*

* @param src 要截取的字符串

* @param start_idx 开始坐标(包括该坐标)

* @param end_idx 截止坐标(包括该坐标)

* @return

*/

public static String substring(String src, int start_idx, int end_idx) {

byte[] b = src.getBytes();

String tgt = "";

for (int i = start_idx; i <= end_idx; i++) {

tgt += (char) b[i];

}

return tgt;

}

}

运行下MonitorBeanImpl类,读者将会看到当前的内存、cpu利用率等信息。

如何用C#实时获取CPU利用率

如何用C#实时获取CPU利用率 using System.Diagnostics; using System.Threading; public class CpuLoadInfo { // auxiliary print methods private static void Say ( string txt ) { Console.WriteLine(txt); } // auxiliary print methods private static void Say() { Say(""); } // The main method. Command line arguments are ignored. [STAThread] public static void Main() { Say("$Id: CpuLoadInfo.cs,v 1.2 2002/08/17 17:45:48 rz65 Exp $"); Say(); Say("Attempt to create a PerformanceCounter instance:"); Say("Category name = " + CategoryName); Say("Counter name = " + CounterName); Say("Instance name = " + InstanceName); PerformanceCounter pc = new PerformanceCounter(CategoryName,CounterName,InstanceName); Say("Performance counter was created."); Say("Property CounterType: " + pc.CounterType); Say(); Say("Property CounterHelp: " + pc.CounterHelp); Say(); Say("Entering measurement loop.");

CPU使用率高怎么办 CPU使用率过高的解决办法

CPU使用率高怎么办CPU使用率过高的解决办法 发布时间:2012-09-09 12:03作者:电脑百事网原创来源:https://www.360docs.net/doc/913598665.html,1714 次阅读 关于CPU过高这个问题相信以前不少朋友也遇到过,当CPU使用率过高的时候,由于CPU资源不足,往往很容易出现电脑卡或者无响应的等情况。那么针对CPU使用率高怎么办呢?网上关于这个话题讨论很多,其实都是从两个方面去考虑,一个是软件方面,另外一个则是硬件方面,其中硬件方面其决定性因素,下面我们一起来详细与大家分析下。 CPU使用率高怎么办

要解决CPU使用率过高,首先我们要明白CPU过高是什么原因造成的,我们主要从软件与硬件入手: ⒈)软件方面导致的CPU使用率高 这方面主要涉及到的是系统问题,比如系统过于臃肿,开启过多程序以及电脑中病毒木马等等都会产生CPU使用率过高,而导致电脑速度慢。解决办法主要是围绕系统优化,优化开机启动项、尽量避免开启太多程序等等,以下我们会详细介绍。 ⒉)硬件方面导致的CPU使用率高 其实硬件方面决定着比较大的关系,比如如果电脑还是老爷机,采用最初的单核赛扬级处理器,那么这样的电脑,在多开启几个网页的情况下就容易导致CPU使用率过高,不管你怎么优化系统,这个问题始终无法很好解决,这主要是因为硬件本身过低造成的。 不过如今电脑均已经达到了双核以上,即便入门处理器在满足上网与办公也会有非常流畅的运行速度,因此如果是老电脑经常出现CPU使用率过高,那么建议大家最好升级处理器或者换电脑从根本上解决问题。对于如今入门双核处理器尽管满足基本上网与办公流畅,但运行大型应用也同样会存在CPU使用率高的问题,因此在DIY 装机中我们一定要了解电脑的用途与需求,选择合适的电脑配置。 最后我们再来重点与大家介绍下CPU使用率过高的解决办法。由于硬件方面,我们只能采取硬件升级来解决,所以这里不过多介绍,

linux c程序获取cpu使用率及内存使用情况

想获取一下目标机运行时linux系统的硬件占用情况,写了这几个小程序,以后直接用了。方法就是读取proc下的文件来获取了。cpu使用率:/proc/stat ,内存使用情 况:/proc/meminfo 看程序: /*************************************************************** * @file: statusinfo.c * * @brief: 从linux系统获取cpu及内存使用情况 * * @version 1.0 * * @author 抹黑 * * @date 2009年3月17日 * ***************************************************************/ typedef struct PACKED //定义一个cpu occupy的结构体 { char name[20]; //定义一个char类型的数组名name有20个元素 unsigned int user; //定义一个无符号的int类型的user unsigned int nice; //定义一个无符号的int类型的nice unsigned int system;//定义一个无符号的int类型的system unsigned int idle; //定义一个无符号的int类型的idle }CPU_OCCUPY; typedef struct PACKED //定义一个mem occupy的结构体 { char name[20]; //定义一个char类型的数组名name有20个元素 unsigned long total; char name2[20]; unsigned long free; }MEM_OCCUPY; get_memoccupy (MEM_OCCUPY *mem) //对无类型get函数含有一个形参结构体类弄的指针O

电脑CPU使用率过高的解决方法

电脑CPU使用率过高的解决方法 cpu使用率高是网民经常遇到的问题,CPU使用率高其实就是你运行的程序占用的CPU资源,说明你的机器在这个时间上运行了很多程序。长期使用会让CPU 长时间处于高热状态会对影响cpu寿命产生点影响,CPU使用率过高怎么办呢?首先我们来看看使cpu使用率高的原因,好对症下药。 cpu使用率高的原因和解决办法: 一、电脑正在运行大型的应用程序,例如大型的处理软件、3D网络游戏等等 1、退出当前大型程序,等待cpu使用率恢复正常。 2、查看电脑配置是否满足运行该程序的最低配置,如果确实是电脑配置不行的话,那么就建议网友将电脑硬件进行升级了。 3、如果是软件的话,来自深度系统之家https://www.360docs.net/doc/913598665.html,,建议用其他同类cpu使用率低的软件替代该软件。 4、必免电脑同一时间运行过多程序和打开过多网页 二、开机启动项过多也会导致出现cpu使用率过高 1、设置软件→禁止软件开机启动 2、对于开机就在进程里出现莫名的程序,建议你重装系统 三、电脑软件兼容性的问题 1、尤其是显卡,尽量选择微软认证的或者是官方发布的驱动来装 2、定期更新电脑各种驱动,保持电脑驱动处于最新状态,减少CPU使用率过高的概率 四、软件和程序非大众型,可能会在兼容性,操作性等方面有些缺陷 1、尽量选择一些用户群体比较多、好评率比较高的软件和程序

五、病毒、木马造成,例如下载者类的病毒,这类病毒会在后台下载大量的恶意程序运行 1、下载杀毒软件或者木马专杀工具进行扫描和杀毒 2、使用占用资源小的一些安全工具对电脑时时保护,比如360安全卫士 3、顽固病毒杀不死就只有重装系统了 以上情况都会导致CPU使用率过高,甚至可能会对至电脑死机。上面仅是常见的几种cpu使用率过高的一些分析,系统吧希望上面方法会对你有所帮助。

获取CPU的温度的方法

获取CPU的温度的方法 在内存配置较低的计算机中(比如内存32MB,Windows 98第二版),CPU的占有率是较高的,一般能够达到50%,这可能是由于系统需要CPU进行许多的运算模拟来弥补资源的不足。下面是收集获取CPU温度的方法,欢迎阅读。 作为一个系统级程序员或者编程爱好者,掌握一些系统的高级编程技巧是非常有意义的。本文将介绍如何利用一些高级的编程技巧来实现动态监控。 虽然Windows 98“系统工具”中的“资源状况”程序能够监视CPU的资源占用状况,但是那些相关的数据却无法传递到我们自己的程序中。为此,笔者用VB 6编写了一个具有上述功能的CPU监视软件,它可以实现对CPU资源状况的监视并取得有关数据,并且能够显示到一个精致的图示窗口中。 编程原理 CPU的资源占用情况真正反映在CMOS中,但是如果我们直接从这里开始编程,那将是一件非常复杂的工作。幸好,Windows 98已经帮我们做好了这一步,它的底层技术能够从CMOS中获取CPU的资源占用状况参数并且记录到注册表中 “HKEY_DYN_DATA\PerfStats\StatData”的分支“KERNEL\CPUUsage”中,通过周期性地读取该键的键值,并且将参数传递到我们自己制作的监视器界面或者有关变量中,就可以即时获得并反映出CPU的使用状况了。

本程序的关键是以通用的方法获取相关键值并反映输出到自制的动态进度监视器上,为了更有利于观察、分析,我们将添加一个简单的趋势分析平均线。通过本文,初学者还将能了解如何从注册表的指定项获取数据和利用Picture控件实现进度指示器的编程技巧。 1.设计程序界面 首先运行VB 6中文版,建立一个标准的exe工程,将窗体命名为frmmain,borderstyle属性设为:3-fixed,caption,属性设置为空;接着添加一个frame控件——“frame1”,caption属性设置为空,再添加picturebox控件pctPrg,前景色为绿色,背景色为浅红色;最后添加一个定时器控件——“timer”,interval设置为100(当然,也可以根据自己的需要设置读取间隔),enabled设置为true,其他的属性采用系统的默认值,调整窗体和控件到适当位置和适当大小即可(参见附图)。 2.编写程序代码,双击窗体frmmain并输入以下代码 Option Explicit '变量检查 Private Declare Function RegQueryValueEx Lib "advapi32.dll " Alias "RegQueryValueExA " (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long '获取一个指定的注册表项的设置值

CPU占用率高的九大原因

cpu占用率高的九种可能 1、防杀毒软件造成故障 由于新版的kv、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。 2、驱动没有经过认证,造成cpu资源占用100% 大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。 3、病毒、木马造成 大量的蠕虫病毒在系统内部迅速复制,造成cpu占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 4、控制面板—管理工具—服务—rising realtime monitor service点鼠标右键,改为手动。 5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。 6、查看“svchost”进程。 svchost.exe是windows xp系统的一个核心进程。svchost.exe不单单只出现在windows xp中,在使用nt内核的windows系统中都会有svchost.exe的存在。一般在windows 2000中svchost.exe进程的数目为2个,而在windows xp中svchost.exe进程的数目就上升到了4个及4个以上。 7、查看网络连接。主要是网卡。 8、查看网络连接 当安装了windows xp的计算机做服务器的时候,收到端口445 上的连接请求时,它将分配内存和少量地调配cpu资源来为这些连接提供服务。当负荷过重的时候,cpu占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的maxworkitems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。 要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[hkey_local_machine\system\currentcontrolset\services\lanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的dword值。然后双击该值,在打开的窗口中键入下列数值并保存退出: 如果计算机有512mb以上的内存,键入“1024”;如果计算机内存小于512 mb,键入“256”。 9、看看是不是windows xp使用鼠标右键引起cpu占用100% 前不久的报到说在资源管理器里面使用鼠标右键会导致cpu资源100%占用,我们来看看是怎么回事? 征兆: 在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 任何文件的拷贝操作在那个时间将有可能停止相应 网络连接速度将显著性的降低 所有的流输入/输出操作例如使用windows media player听音乐将有可能是音乐失真成因: 当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,cpu占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。 解决方法: 方法一:关闭“为菜单和工具提示使用过渡效果” 1、点击“开始”--“控制面板”

CPU占用率高的九种解决方法

CPU占用率过高是大家都会遇到的系统问题,这个故障也非常令人头痛。CPU占用率过高怎么办?我们可能会采取重启,关闭系统进程来解决问题,但是事实上这样的做法并不科学。一般CPU占用率过高有九种可能,我们挨个分析一下: 1、防杀毒软件造成故障 由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。 2、驱动没有经过认证,造成CPU资源占用100% 大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。 3、病毒、木马造成 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 4、系统服务 控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。 5、启动项 开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。 6、查看“Svchost”进程 Svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe 进程的数目就上升到了4个及4个以上。 7、查看网络连接 主要是网卡。 8、查看网络连接

通过SNMP查看设备CPU利用率配置举例

通过SNMP查看设备CPU利用率配置举例 关键词:SNMP、NMS、Agent、MIB、CPU利用率 摘要:NET-SNMP是SNMP协议的一套开源实现工具,可作为NMS或Agent。本文主要介绍NET-SNMP作为NMS通过SNMP协议查看H3C设备(作为Agent)CPU利用率的配置应用。 缩略语:SNMP、NMS、MIB 缩略语英文全名中文解释 SNMP Simple Network Management Protocol 简单网络管理协议 NMS Network Management System 网络管理系统 Information Base 管理信息库 MIB Management

目录 1 简介 (3) 2 Net-SNMP使用简介 (3) 3 相关MIB节点 (4) 4 使用SNMP v1、v2c查看设备CPU利用率配置举例 (5) 4.1 组网需求 (5) 4.2 配置思路 (6) 4.3 配置步骤 (6) 4.3.1 配置Agent (6) 4.3.2 配置NMS (7) 5 使用SNMP v3查看设备CPU利用率配置举例 (8) 5.1 组网需求 (8) 5.2 配置思路 (9) 5.3 配置步骤 (9) 5.3.1 配置Agent (9) 5.3.2 配置NMS (10)

1 简介 SNMP是网络中管理设备(NMS)和被管理设备(Agent)之间的通信规则。NMS通过Get和Set等操作获取、设置Agent上变量的值,从而实现对Agent的远程管理、监控。Agent的CPU 利用率就是NMS经常监控的重要变量。 CPU利用率反映了一段时间内设备CPU资源的使用情况。如果CPU利用率一直居高不下,说明设备负载较重,需要对设备当前状况进行分析,找到引起设备负载过重的原因,从而预防、诊断网络故障。 目前市场上有多种NMS产品,其中Net-SNMP作为一种开源实现的NMS在业界被广泛使用。它提供了一套完整的应用程序,实现了SNMPv1/v2c/v3功能。本文将描述如何使用Net-SNMP工具通过访问MIB对象获取设备CPU利用率。 2 Net-SNMP使用简介 本文主要用到Net-SNMP的snmpget功能和snmpwalk功能。 z snmpget功能:即执行一次SNMP Get操作,用来获取Agent上指定MIB对象的值。命令行格式为snmpget [OPTIONS] AGENT OID [OID]。 z snmpwalk功能:即执行一次SNMP Walk操作,用来获取Agent上多个MIB对象的值。命令行格式为snmpwalk [OPTIONS] AGENT [OID]。 以上两条命令行中各参数的含义如下: 参数说明 snmpget 命令关键字,表示执行Get操作 snmpwalk 命令关键字,表示执行Walk操作 OPTIONS 命令行选项(常用选项请参见表1) AGENT Agent的IP地址 OID Agent上MIB对象的OID(如果是执行Get操作,OID必须是叶子节点或者是表节点实体的OID;如果是执行Walk操作,可以是所有类型对象的OID) 表1Net-SNMP命令行工具常用选项 选项说明举例-h 显示命令帮助信息-h -v 设置使用的SNMP版本,取值为1、2c或3 -v 1 -c 设置团体名-c public -a 设置认证协议类型,取值为MD5或SHA -a MD5 -A 设置认证密码-A 12345678

用top命令查看CPU使用率

用top 命令查看CPU 使用率 在系统维护的过程中,随时可能有需要查看CPU 使用率,并根据相应信息分析系统状况的需要。在CentOS 中,可以通过top 命令来查看CPU 使用状况。运行top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式-- 用基于top 的命令,可以控制显示方式等等。退出top 的命令为q (在top 运行中敲q 键一次)。 运行top 在命令行中输入“top” 即可启动top ,运行后如下图所示: 如上图所示,top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。第一部分-- 最上部的系统信息栏: 第一行(top): “00:11:04”为系统当前时刻; “3:35”为系统启动后到现在的运作时间; “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数-- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目; “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、

15分钟前进程的平均数,一般的可以认为这个数值超过CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程; 第二行(Tasks): “59 total”为当前系统进程总数; “1 running”为当前运行中的进程数; “58 sleeping”为当前处于等待状态中的进程数; “0 stoped”为被停止的系统进程数; “0 zombie”为被复原的进程数; 第三行(Cpus): 分别表示了CPU 当前的使用率; 第四行(Mem): 分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量; 第五行(Swap): 表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。 第二部分-- 中间部分的内部命令提示栏: top 运行中可以通过top 的内部命令对进程的显示方式进行控制。内部命令如下表: s - 改变画面更新频率 l - 关闭或开启第一部分第一行top 信息的表示 t - 关闭或开启第一部分第二行Tasks 和第三行Cpus 信息的表示 m - 关闭或开启第一部分第四行Mem 和第五行Swap 信息的表示 N - 以PID 的大小的顺序排列表示进程列表(第三部分后述) P - 以CPU 占用率大小的顺序排列进程列表(第三部分后述) M - 以内存占用率大小的顺序排列进程列表(第三部分后述) h - 显示帮助 n - 设置在进程列表所显示进程的数量 q - 退出top s - 改变画面更新周期 第三部分-- 最下部分的进程列表栏: 以PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过top 内部命令可以控制此处的显示方式。 应用top

CPU使用率100%剖析

CPU使用率100%剖析 我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看“任务管理器”才发现CPU占用达到100%。这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在本文中笔者将从硬件,软件和病毒三个方面来讲解系统资源占用率为什么会达到100%。 经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面: CPU占用率高的九种可能 1、防杀毒软件造成故障 由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。 2、驱动没有经过认证,造成CPU资源占用100% 大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。处

理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。 3、病毒、木马造成 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。 5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。 6、查看“svchost”进程。 svchost.exe是Windows XP系统的一个核心进程。svchost.exe 不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe

linux下如何获取cpu的利用率

linux下如何获取cpu的利用率 “proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc 得到系统的信息,并可以改变内核的某些参数。” 这里将介绍如何从/proc文件系统中获取与防火墙相关的一些性能参数,以及如何通过/proc 文件系统修改内核的相关配置。 1、从/proc文件系统获取相关的性能参数 cpu使用率:/proc/stat 内存使用情况:/proc/meminfo 网络负载信息:/proc/net/dev 相应的计算方法:(摘自:什么是proc文件系统,见参考资料) (1)处理器使用率 (2)内存使用率 (3)流入流出数据包 (4)整体网络负载 这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取。如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。 (1)处理器使用率 这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU 的利用率使用如下公式来计算。 CPU利用率= 100 *(user + nice + system)/(user + nice + system + idle) (2)内存使用率 这里需要从/proc/meminfo文件中提取两个数据,当前内存的使用量(cmem)以及内存总量(amem)。

cpu使用率计算方法

cpu使用率计算方法 cpu使用率计算方法一使用cpu的处理能力基准计算实时cpu占用率 具体描述: (1) 在rtos系统启动前, 使用tick中断测试cpu的处理能力基准 cpuperformancebase; (2) 在系统进入运行后, 使用空闲任务执行与测试cpu处理能力基准完全相同的算法, 得到rtcpuperformance. (3) 周期地计算cpu占用率, 并清除rtcpuperformance的值, 一般每秒钟计算一次: realtime cpu load = 1 - (rtcpuperformance/cpuperformancebase) * 100% 优点: (1) 实现简单 (2) 所得到的cpu占用率非常准确, 误差只取决于cpuperformancebase的测试结果和整除时的余数, 通常误差小于1% (3) 不占用硬件资源 缺点: (1) cpu必须一直全速运行, 不能修改cpu主频, 也不能使cpu进入掉电保护模式

(2) 不能得到系统中每个任务对cpu占用率的贡献 (3) 必须有一个空闲任务才能计算 评价: 这个算法只适用于工控, 电信等对不需要使cpu进入掉电保护模式的领域. 在tick中断中对rtos中的任务进行采样 具体描述: (1) 系统进入运行后, 每次tick中断发生时, 采样一下当前正在执行的任务, 如果cpu处于halt态, 累加halttimes (2) 周期性地计算cpu占用率, 一般每秒钟计算一次, 并清除halttimes:(tickintfrequance表示tick中断的发生频率) realtime cpu load = halttimes / tickintfrequance 某个任务对cpu占用率的贡献 = 一个周期内该任务被采样到的次数 / tickintfrequance * 100% 优点: (1) 实现简单 (2) 支持cpu掉电模式 (3) 可以大致得到每个任务对cpu占用率的贡献 缺点: (1) 误差取决于tick的频率和os中每个任务的运行时长, 因此误差非常大 评价: 这个算法适用于对cpu占用率精度要求不高的消息电子产品. 精确计算每个任务对cpu占用率的贡献

Java获取Linux和Window系统CPU、内存和磁盘总使用率的情况

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Java 获取Linux 和Window 系统CPU、内存和磁盘总使用率的情况 2017/05/08 0 这是一个工具类,获取的内容: CPU 使用率:得到的是当前CPU 的使用情况,这是算出的是两次500 毫秒时间 差的CPU 使用率 内存使用率:[1 - 剩余的物理内存/(总的物理内存+虚拟内存) ] * 100 磁盘总使用率:[1 - 磁盘空余大小/磁盘总大小] * 100 下面开始贴代码:使用暂时没有发现什么问题,如果有问题,咱们可以一起讨论package com.util; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.LineNumberReader;import https://www.360docs.net/doc/913598665.html,ng.management.ManagementFactory;import java.math.BigDecimal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.StringTokenizer; import org.apache.log4j.Logger; import com.sun.management.OperatingSystemMXBean; public class ComputerMonitorUtil { private static String osName = System.getProperty(“https://www.360docs.net/doc/913598665.html,”);private static final int CPUTIME = 500;private static final int PERCENT = 100;private static final int FAULTLENGTH = 10;private static final Logger logger = Logger.getLogger(ComputerMonitorUtil.class); /** * 功能:获取Linux 和Window 系统cpu 使用率* */public static double getCpuUsage() {// 如果是window 系统if (osName.toLowerCase().contains(“windows”)||osName.toLowerCase().contains(“win”)) {try {String procCmd = System.getenv(“windir”)+“//system32//wbem//wmic.exe process get Caption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeTi

电脑CPU使用率过高怎么办

电脑CPU使用率过高怎么办 cpu使用率高是网民经常遇到的问题,CPU使用率高其实就是你运行的程序占用的CPU资源,说明你的机器在这个时间上运行了很多程序。长期使用会让CPU长时间处于高热状态会对影响cpu寿命产生点影响,CPU使用率过高怎么办呢?首先我们来看看使cpu使用率高的原因,好对症下药。 cpu使用率高的原因和解决办法: 一、电脑正在运行大型的应用程序,例如大型的处理软件、3D网络游戏等等 1、退出当前大型程序,等待cpu使用率恢复正常。 2、查看电脑配置是否满足运行该程序的最低配置,如果确实是电脑配置不行的话,那么就建议网友将电脑硬件进行升级了。 3、如果是软件的话,建议用其他同类cpu使用率低的软件替代该软件。 4、必免电脑同一时间运行过多程序和打开过多网页 二、开机启动项过多也会导致出现cpu使用率过高 1、设置软件→禁止软件开机启动 2、对于开机就在进程里出现莫名的程序,建议你重装系统 三、电脑软件兼容性的问题 1、尤其是显卡,尽量选择微软认证的或者是官方发布的驱动来装 2、定期更新电脑各种驱动,保持电脑驱动处于最新状态,减少CPU使用率过高的概率

四、软件和程序非大众型,可能会在兼容性,操作性等方面有些缺陷 1、尽量选择一些用户群体比较多、好评率比较高的软件和程序 五、病毒、木马造成,例如下载者类的病毒,这类病毒会在后台下载大量的恶意程序运行 1、下载杀毒软件或者木马专杀工具进行扫描和杀毒 2、使用占用资源小的一些安全工具对电脑时时保护,比如360安全卫士 3、顽固病毒杀不死就只有重装系统了 以上情况都会导致CPU使用率过高,甚至可能会对至电脑死机。上面仅是常见的几种cpu使用率过高的一些分析,系统吧希望上面方法会对你有所帮助。

snmp如何获取主机CPU的频率和使用率

snmp如何获取主机CPU的频率和使用率 根据MRTG绘图原理,一般只要提供给MRTG两组数字再透过mrtg.cfg的设定后,执行/usr/bin/mrtg /etc/mrtg/mrtg.cfg.xxx 即可绘出一个图形出来,因此,我们可以利用这样的原理来绘出一皆我们所想要的监控图形出来,本章节所提的主机CPU负载量统计即是利用这样的原理所产生而来的。 1. 首先,我们必须利用script来产生两个数值出来,一般针对CPU而言必须对日常CPU 负载作监控的方式,在网路上有很多方法,一般较常见的方式便是采用sar 这个指令来作,因为sar 这个指令会产生Average(平均值)例如: ,因此,我们便直接抓欲监测的数值两个即可绘出我们所想要看到的图形出来了。 2. Script,一般而言sar 所产生的数据,我们仅仅要的只是其中的两个而已,因此必须透过Script来完成抓值的工作,至於要抓哪些值呢?以sar所产生的数据来说我们得先抓到 Average: all 0.00 0.00 0.00 100.00 这行,然后%user、%nice、%system、%idle这四个数值我们仅仅只需要两个就够了,以下所举的例子是以%user使用量平均值及%system系统使用量平均值: /usr/bin/sar -u 1 3 | grep Average | awk '{print $3}' /usr/bin/sar -u 1 3 | grep Average | awk '{print $5}' 以上两个数据,我们还必须加上”开机时间”及”主机名称”,所以我们必须写一个Script来完成这四个数据的产生。以下两个范例一个是采用一般的shell script所写出来的,另一个则是用perl与法所写的: #!/bin/bash

linux下如何获取cpu的利用率

linux下如何获取cpu的利用率 "proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。" 这里将介绍如何从/proc文件系统中获取与防火墙相关的一些性能参数,以及如何通过/proc文件系统修改内核的相关配置。 1、从/proc文件系统获取相关的性能参数 cpu使用率:/proc/stat 内存使用情况:/proc/meminfo 网络负载信息:/proc/net/dev 相应的计算方法:(摘自:什么是proc文件系统,见参考资料) (1)处理器使用率 (2)内存使用率 (3)流入流出数据包 (4)整体网络负载 这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取。如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。 (1)处理器使用率 这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU的利用率使用如下公式来计算。 CPU利用率= 100 *(user + nice + system)/ (user + nice + system + idle) (2)内存使用率 这里需要从/proc/meminfo文件中提取两个数据,当前内存的使用量(cmem)以及内存总量(amem)。 内存使用百分比= 100 * (cmem / umem) (3)网络利用率 为了得到网络利用率的相关数据,需要从/proc/net/dev文件中获得两个数据:从本机输出的数据包数,流入本机的数据包数。它们都位于这个文件的第四行。 性能收集程序开始记录下这两个数据的初始值,以后每次获得这个值后均减去这个初始值即为从集群启动开始从本节点通过的数据包。 利用上述数据计算出网络的平均负载,方法如下: 平均网络负载= (输出的数据包+流入的数据包) / 2 2. 通过/proc文件系统调整相关的内核配置 允许ip转发/proc/sys/net/ipv4/ip_forward 禁止ping /proc/sys/net/ipv4/icmp_echo_ignore_all 可以在命令行下直接往上述两个“文件”里头写入"1"来实现相关配置,如果写入"0"将取

CPU内存利用率(VC)

VC++设计图形显示CPU内存利用率程序 核心提示:本程序分两种情况来获取CPU的利用率,NT下利用ntdll.dll中没有公开的API 1)、本程序分两种情况来获取CPU的利用率,NT下利用ntdll.dll中没有公开的API: NtQuerySystemInformation,9x下利用注册表来获取CPU的利用率 code:NT typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG); PROCNTQSI NtQuerySystemInformation; NtQuerySystemInformation = (PROCNTQSI)GetProcAddress( GetModuleHandle("ntdll"), "NtQuerySystemInformation" ); if (!NtQuerySystemInformation) { return; } // get number of processors in the system status = NtQuerySystemInformation(SystemBasicInformation, &SysBaseInfo,sizeof(SysBaseInfo),NULL); if (status != NO_ERROR) { return; } status = NtQuerySystemInformation(SystemTimeInformation, &SysTimeInfo,sizeof(SysTimeInfo),0); if (status!=NO_ERROR) { return; } // get new CPU''s idle time status = NtQuerySystemInformation(SystemPerformanceInformation, &SysPerfInfo,sizeof(SysPerfInfo),NULL); if (status != NO_ERROR) { return; } // if it''s a first call - skip it if (m_liOldIdleTime.QuadPart != 0) { // CurrentValue = NewValue - OldValue dbIdleTime = Li2Double(SysPerfInfo.liIdleTime) - Li2Double(m_liOldIdleTime); dbSystemTime = Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(m_liOldSystemTime);

电脑CPU使用率久高不降怎么办!

电脑CPU使用率久高不降怎么办!~ 计算机CPU占用率高的几种可能原因 第一:电脑运行了过多的程序,设置并推出程序,不要让程序开机自动运行; 第二:后台启动项过多,关闭不必要的启动项;打开开始菜单->运行->输入msconfig->启动,关闭不必要的启动项,使得电脑cup下降。 第三:安装了不当的杀毒软件或这是杀毒软件冲突也会造成cpu过高;安装一个知名的可靠杀毒软件就可;推荐永久免费的金山毒霸杀毒软件https://www.360docs.net/doc/913598665.html,/ 第四:某些程序BUG,会造成CPU100% 占用,例如遨游浏览器是不是会CPU100%,打开控制面板,结束CUP过多的程序。 第五、电脑中了病毒和木马造成

电脑中大量的蠕虫病毒在电脑系统内部迅速自我复制,造成CPU占用率高。处理方法:下载可靠的杀毒软件,对电脑进行全盘杀毒。 怎么能够使CPU使用率降下来呢?基本上没有什么程序,也没有病毒!但是CPU使用率却老高不降! 最佳答案 CPU占用率高的九种可能 1、防杀毒软件造成故障 由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,者,升级你的硬件配备。 2、驱动没有经过认证,造成CPU资源占用100% 大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。 3、病毒、木马造成 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。

用java获取CPU占用率

用java获取CPU占用率 废话不说,代码如下: Bytes.java 引用: Class Bytes{ public static String substring(Stringsrc,int start_idx,int end_idx){ byte[]b=src.getBytes(); Stringtgt=""; for(int i=start_idx;i<=end_idx;i++){ tgt+=(char)b; } return tgt; } } MonitorInfoBean.java 引用: Public class MonitorInfoBean{ /**线程总数.*/ private int totalThread; /**cpu使用率.*/ private double cpuRatio; public int getTotalThread(){ return totalThread; } public void setTotalThread(int totalThread){

this.totalThread=totalThread; } publicdouble getCpuRatio(){ return cpuRatio; } publicvoid setCpuRatio(double cpuRatio){ this.cpuRatio=cpuRatio; } } CPU.java 引用: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.StringTokenizer; Public class CPU{ private static finalint CPUTIME=30; private static finalint PERCENT=100; private static finalint FAULTLENGTH=10; private static String linuxVersion=null; public double getCpuRatio(){ //操作系统 StringosName=System.getProperty("https://www.360docs.net/doc/913598665.html,"); double cpuRatio=0; if(osName.toLowerCase().startsWith("windows")){ cpuRatio=this.getCpuRatioForWindows(); }else{ cpuRatio=this.getCpuRateForLinux();

相关文档
最新文档