当前位置: 首页 > news >正文

源码之家 网站模板建设工程公司网站

源码之家 网站模板,建设工程公司网站,linux下如何打开wordpress,网站建设设计服务(转#xff09;用Java获得当前性能信息 http://www.blogjava.net/amigoxie/archive/2008/04/30/197564.html在Java中#xff0c;可以获得总的物理内存、剩余的物理内存、已使用的物理内存等信息#xff0c;本例讲解如何取得这些信息#xff0c;并且获得在Windows下的内存使… (转用Java获得当前性能信息 http://www.blogjava.net/amigoxie/archive/2008/04/30/197564.html 在Java中可以获得总的物理内存、剩余的物理内存、已使用的物理内存等信息本例讲解如何取得这些信息并且获得在Windows下的内存使用率。      首先编写一个MonitorInfoBean类用来装载监控的一些信息包括物理内存、剩余的物理内存、已使用的物理内存、内存使用率等字段该类的代码如下package com.amigo.performance;/** *//** * 监视信息的JavaBean类. * author a hrefmailto:xiexingxing1121126.comAmigoXie/a * version 1.0  * Creation date: 2008-4-25 - 上午10:37:00 */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) {        this.usedMemory  usedMemory;    }    public double getCpuRatio() {        return cpuRatio;    }    public void setCpuRatio(double cpuRatio) {        this.cpuRatio  cpuRatio;    }}      接着编写一个获得当前的监控信息的接口该类的代码如下所示package com.amigo.performance;/** *//** * 获取系统信息的业务逻辑类接口. * author a hrefmailto:xiexingxing1121126.comAmigoXie/a * version 1.0  * Creation date: 2008-3-11 - 上午10:06:06 */public interface IMonitorService {    /** *//**     * 获得当前的监控对象.     * return 返回构造好的监控对象     * throws Exception     * author a hrefmailto:xiexingxing1121126.comAmigoXie/a     * Creation date: 2008-4-25 - 上午10:45:08     */    public MonitorInfoBean getMonitorInfoBean() throws Exception;}      该类的实现类MonitorServiceImpl如下所示package com.amigo.performance;import java.io.InputStreamReader;import java.io.LineNumberReader;import sun.management.ManagementFactory;import com.sun.management.OperatingSystemMXBean;/** *//** * 获取系统信息的业务逻辑实现类. * author a hrefmailto:xiexingxing1121126.comAmigoXie/a * version 1.0 Creation date: 2008-3-11 - 上午10:06:06 */public class MonitorServiceImpl implements IMonitorService {        private static final int CPUTIME  30;    private static final int PERCENT  100;    private static final int FAULTLENGTH  10;    /** *//**     * 获得当前的监控对象.     * return 返回构造好的监控对象     * throws Exception     * author a hrefmailto:xiexingxing1121126.comAmigoXie/a     * Creation date: 2008-4-25 - 上午10:45:08     */    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(os.name);        // 总的物理内存        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();        }                // 构造返回对象        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;    }    /** *//**     * 获得CPU使用率.     * return 返回cpu使用率     * author a hrefmailto:xiexingxing1121126.comAmigoXie/a     * Creation date: 2008-4-25 - 下午06:05:11     */    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 a hrefmailto:xiexingxing1121126.comAmigoXie/a     * Creation date: 2008-4-25 - 下午06:10:14     */    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;                }                // log.info(lineline);                if (caption.equals(System Idle Process)                        || caption.equals(System)) {                    idletime  Long.valueOf(                            Bytes.substring(line, kmtidx, rocidx - 1).trim())                            .longValue();                    idletime  Long.valueOf(                            Bytes.substring(line, umtidx, wocidx - 1).trim())                            .longValue();                    continue;                }                kneltime  Long.valueOf(                        Bytes.substring(line, kmtidx, rocidx - 1).trim())                        .longValue();                usertime  Long.valueOf(                        Bytes.substring(line, umtidx, wocidx - 1).trim())                        .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 a hrefmailto:xiexingxing1121126.comAmigoXie/a     * Creation date: 2008-4-30 - 下午04:47:29     */    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.amigo.performance;/** *//** * byte操作类. * author a hrefmailto:xiexingxing1121126.comAmigoXie/a * version 1.0  * Creation date: 2008-4-30 - 下午04:57:23 */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 istart_idx; iend_idx; i){            tgt (char)b[i];        }        return tgt;    }}         运行下MonitorBeanImpl类读者将会看到当前的内存、cpu利用率等信息。 posted on 2008-05-02 07:03 jackyrong的世界 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/jackyrong/archive/2008/05/02/1179180.html
http://www.pierceye.com/news/633068/

相关文章:

  • 网站建设合作流程图在北京做兼职哪个网站好
  • 哪些网站是phpwind做的广东各地最新病例
  • 精品网站设计wordpress第三方主题
  • 莱芜网站设计wordpress使用方法
  • 商城网站框架河南招标信息网
  • 卖辅助网站怎么做最大源码网站
  • 温州百度推广排名廊坊网站排名优化报价
  • 湖北建设信息网站百度一下百度主页
  • 做网站的销售员电话话术wordpress主页链接失效
  • 国外唯美flash个人网站欣赏微网站建设教程
  • 网站动态添加广告怎么做的东莞网站建设规范
  • 天津网站建设工作室seo网站推广实例
  • 网站建设销售工作职责外贸网站建设知识 列表
  • 电子商务网站建设教案wordpress置顶
  • 公司建立网站步骤wordpress修改社交标签
  • 汕头网站建设公司附近电商培训班
  • 传奇服务器网站如何建设官方网站下载zoom
  • 帮人做彩票网站支付接口电子商务网站名字
  • 怎么查询网站是否被收录网络推广软件有哪些
  • 福田我要做网站优化比较好wordpress美图模板
  • wordpress 分享可见湖南优化电商服务有限公司
  • 高培淇自己做的网站网站页面可以用什么框架做
  • 在线推广企业网站的方法有哪些门户网站例子
  • 网站集约化建设 技术优质网站建设是哪家
  • 网站技术制作广州番禺建设银行网站登录
  • 女同性怎么做的视频网站wordpress 文章 定时
  • 域名备案时网站名字wordpress mip主题
  • 旅行社服务网点能否做网站wordpress4.9.8 php版本
  • 网站名称 如何注册wordpress用户名的要求
  • 玉树州wap网站建设公司常州市工程建设招标网