- 浏览: 194390 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
find13:
学习
iReport中文教程 -
coderfly:
thanks !
iReport中文教程 -
月亮不懂夜的黑:
下载 学习。thanks!
iReport中文教程 -
yanqingluo:
谢谢,先转走.再验证.
eclipse maven debug -
周佳1986:
谢谢,分享。
iReport中文教程
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigDecimal; import org.apache.log4j.Logger; import sun.management.ManagementFactory; import com.ailk.ts.message.bean.MonitorInfoBean; public class SystemInfoTools { final static boolean isNotWindows = System.getProperties().getProperty("os.name").toLowerCase().indexOf("windows") < 0; final static BigDecimal DIVISOR = BigDecimal.valueOf(1024); private final static Logger logger = Logger.getLogger(SystemInfoTools.class); public static int getPid(){ return Integer.parseInt(ManagementFactory.getRuntimeMXBean().getName().split("@")[0]); } public static MonitorInfoBean getMonitorInfoBean() { MonitorInfoBean monitorInfo = new MonitorInfoBean(); if(!isNotWindows){ monitorInfo.setMemUsage(500); return monitorInfo; } Runtime rt = Runtime.getRuntime(); BufferedReader in = null; try { int pid = getPid(); String[] cmd = { "/bin/sh", "-c", "top -b -n 1 | grep " + pid }; Process p = rt.exec(cmd); in = new BufferedReader(new InputStreamReader(p.getInputStream())); String str = null; String[] strArray = null; while ((str = in.readLine()) != null) { logger.debug("top: " + str); int m = 0; strArray = str.split(" "); for (int i = 0; i < strArray.length; i++) { String info = strArray[i]; if (info.trim().length() == 0){ continue; } if(m == 5) {//第5列为进程占用的物理内存值 String unit = info.substring(info.length() - 1); if(unit.equalsIgnoreCase("g")) { monitorInfo.setMemUseSize(Double.parseDouble(info)); } else if(unit.equalsIgnoreCase("m")) { BigDecimal memUseSize = new BigDecimal(info.substring(0, info.length() - 1)); monitorInfo.setMemUseSize(memUseSize.divide(DIVISOR, 2, BigDecimal.ROUND_HALF_UP).doubleValue()); } else { BigDecimal memUseSize = new BigDecimal(info).divide(DIVISOR); monitorInfo.setMemUseSize(memUseSize.divide(DIVISOR, 2, BigDecimal.ROUND_HALF_UP).doubleValue()); } } if(m == 8) {//第9列为CPU的使用百分比 monitorInfo.setCpuUsage(Double.parseDouble(info)); } if(m == 9) {//第10列为内存的使用百分比 monitorInfo.setMemUsage(Double.parseDouble(info)); } m++; } } } catch (IOException e) { e.printStackTrace(); } finally { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } return monitorInfo; } }
MonitorInfoBean.java
public class MonitorInfoBean { /** cpu使用率 */ private double cpuUsage; /** 内存使用率 */ private double memUsage; /** 内存使用的大小 */ private double memUseSize; public double getCpuUsage() { return cpuUsage; } public void setCpuUsage(double cpuUsage) { this.cpuUsage = cpuUsage; } public double getMemUsage() { return memUsage; } public void setMemUsage(double memUsage) { this.memUsage = memUsage; } public double getMemUseSize() { return memUseSize; } public void setMemUseSize(double memUseSize) { this.memUseSize = memUseSize; } }
发表评论
-
spring事务管理的几种方式
2014-06-19 20:38 6685原文:http://sishuok.com/forum/bl ... -
【转】<maven权威指南>学习笔记
2013-06-06 12:32 1142一些常用的命令 mvn help:effective-pom ... -
ubuntu 下安装oracle客户端oracle-xe-client
2012-12-13 16:19 1685本文转自 http://os.chinaunix.net/a2 ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat
2012-12-11 23:46 5706本文转自:http://blog.csdn.net/ke ... -
【转】自动ssh登录的几种方法
2012-11-01 19:50 1088本文转自 http://blueicer.blog.51cto ... -
【转】ubuntu自动登录ssh
2012-11-01 19:47 1092本文转自 http://huqilong.b ... -
Linux下如何保持gnome-terminal窗口执行命令后停留而不立刻关闭(gnome-terminal -x)
2012-10-17 11:46 12059Linux下如何保持gnome-terminal窗口执行命令 ... -
Ajax 跨域代理
2012-05-23 14:56 1438使用了httpclient做代理请求。 import ... -
【转】Ubuntu10.04下安装oracle客户端 oracle-ex-client, 使用sqlplus
2012-04-27 11:55 1442本文来源于:http://329937021.iteye.co ... -
Ubuntu apt.conf 代理
2012-04-24 16:19 1764Acquire::http::Proxy "h ... -
svn st 状态详解
2012-04-03 14:32 31451svn st --help status (stat, st ... -
[转]整理关于JVM方面的知识点
2012-02-22 20:05 1047转自:http://furturestrategist.ite ... -
Java Selenium【转】
2011-12-29 15:51 2970本文转自 http://www.automationqa.co ... -
Java虚拟机classloader
2011-11-27 12:27 0当JVM(Java虚拟机)启动时,会形成由三个类加载器组 ... -
JVM内存模型
2011-11-27 12:25 634JVM内存模型(详见附件) -
HTTP 协议简介
2011-11-27 12:17 1094HTTP 协议简介(详见附件) 超文本传输协议( ... -
Java Enum 多态
2011-11-27 12:13 1438Enum 多态,我没说错,不过Enum是不可以被继承的, ... -
eclipse maven debug
2011-11-26 11:59 31701、Debugging with the Maven ... -
在Maven2中运行单个测试用例并添加JVM参数【转】
2011-11-26 11:33 2340本文转自http://ralf0131.blogbus.com ... -
java 获取本地IP
2011-11-05 16:23 1069public static void getIP() { ...
相关推荐
获取进程的内存使用情况,我们可以使用`PdhAddCounter`与`\\Process(进程名)\Private Bytes`或`\\Process(进程名)\Working Set`这两个性能计数器。前者表示进程独占的内存,后者则包含了进程的虚拟内存和物理内存。...
下面通过一个示例程序来具体说明如何使用Sigar来获取进程的PID、用户、启动时间、大小、所占内存、状态、运行时间、CPU使用率以及命令等信息。 #### 示例代码分析 ```java private static final int SLEEP_TIME = ...
本文将详细探讨如何利用Java获取Windows和Linux系统的CPU、内存以及硬盘信息。 首先,让我们聚焦于CPU信息的获取。在Java中,`java.lang.management`包提供了ManagementFactory类,它包含了获取系统管理信息的方法...
为了计算CPU占用率,我们使用`GetProcessTimes`获取进程的创建时间、退出时间、内核时间和用户时间,然后根据这些信息计算出CPU使用时间占总时间的比例,转化为百分比。 需要注意的是,由于CPU占用率是瞬时值,为了...
在C#编程中,了解如何获取系统和特定进程的CPU及内存占用率是十分重要的,尤其是在进行性能监控或资源管理的场景下。本篇将详细解释如何实现这一功能,并提供相应的代码示例。 首先,我们要关注的是操作系统级别的...
在Java编程中,获取计算机的硬件信息,如CPU使用率和内存使用情况,是一项常见的需求。这主要应用于系统监控、性能分析以及资源管理等方面。Java虽然不像C++或C#那样可以直接调用操作系统API,但它提供了Java ...
在`top`界面中,你可以看到内存使用相关的列,如`%MEM`(进程占用的总内存百分比)和`RES`(非交换的物理内存占用)。 如果你需要进行更深入的内存分析,比如查找内存泄漏,可能需要使用专门的内存调试工具,例如...
在Android平台上,获取CPU使用率和内存实时数据是开发者进行性能监控、优化应用或实现系统监控功能的关键步骤。本文将详细介绍如何在Android中获取这些关键信息,并提供相关的代码示例。 首先,我们要理解CPU使用率...
在本文中,我们将深入探讨如何使用Windows Presentation Foundation (WPF) 来实时监控和展示系统的CPU使用率和物理内存消耗情况。WPF是.NET Framework的一部分,它为开发人员提供了丰富的功能来创建美观且功能强大的...
在IT领域,尤其是在系统编程和性能分析中,了解如何获取进程的CPU占用率和内存使用情况至关重要。在C++环境中,这通常涉及到操作系统接口的使用,例如Windows API或POSIX系统调用。以下是对"进程CPU占用率和内存使用...
内存使用率、总CPU百分比、获得物理总内存(、获得可用内存(G)、获取mac地址、获取分区信息使用空间 进程(XX)CPU百分比、进程(XX)占用的内存大小、进程(XX)占用的内存百分比。 PerformanceCount方面比较详细,...
在Java中,我们可以利用`Runtime`类或`ProcessBuilder`类来执行Linux命令,如`top`或`vmstat`,然后解析输出以获取CPU使用率。但是,这种方法可能会受到shell环境的影响,且不够高效。更常见的是使用Java的`java....
在Linux系统下将cpu、内存等信息获取并放在同一个文件中的C++源码,需要g++才能编译
本篇文章将探讨如何利用Java获取CPU使用率、硬盘大小、网卡状态以及更广泛的系统信息。我们将主要关注一个名为"libsigar-x86-linux.so"的库文件,这是一个跨平台的系统信息获取工具——Sigar(System Information ...
delphi 仿任务管理器 获取每个进程的cpu使用率,内存使用情况,很好用,有源代码 ,delphi源码
在IT领域,尤其是在系统监控和性能分析中,获取CPU、内存和硬盘的使用情况是非常重要的。C#作为.NET框架下的主要编程语言,提供了丰富的API来帮助开发者实现这一目标。本篇将详细介绍如何利用C#来获取这些关键硬件...
在Java编程中,获取系统资源信息,如CPU使用率和内存使用情况,是常见的需求,尤其是在性能监控和问题排查时。以下将详细解释如何在Java中实现这些功能,并结合提供的代码片段进行说明。 首先,创建一个`...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和Visifire库来实现一个功能,即实时监测并展示Windows操作系统的内存占用和CPU使用情况。Visifire是一款强大的数据可视化工具,它提供了...
### SNMP查看CPU及内存使用率:深入解析与实践 #### 概述 简单网络管理协议(SNMP,Simple Network Management Protocol)是一种广泛应用于网络管理的标准协议,用于收集和组织网络设备的信息,以及修改该信息以...