手机站
网通分站
电信主站
密 码:
用户名:
热门关键字:  虚拟主机  cn域名  域名注册  非法  seo
当前位置 : 主页>程序设计>Java技术>列表

使用Java来监视系统进程的两个解决方案

来源:互联网 作者:west263.com 时间:2008-02-23 点击:
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

用第一个java虚拟机启动另一个虚拟机,并用第一个虚拟机的java程序去测试另一个虚拟机上java程序运行时的内存,CPU资源占用情况。

解决问题的限制和条件:

1》两个虚拟机运行在同台Windows_X86机上。

2》只需要知道第二个虚拟机上运行程序时,第二个虚拟机的内存、CPU使用情况。

3》目的是:测试不同的程序在同个虚拟机上资源使用差别。

解决问题的关键:

第一 如何启动另一虚拟机运行测试的java程序。

第二 如何用第一个虚拟机里的java程序,监视另一个虚拟机与其相关进程的运行情况。

解决办法:

一、使用java.io中的函数(命令试过没问题,程序请按下面提示完成)

使用java.io中的函数

Runtime.getRuntime()。exec("系统命令");

这里我给一个带命令参数的例子

Runtime r=Runtime.getRuntime();

Process p=null;

String cmd[]={"命令","参数"};

try{ 

p=r.exec(cmd);

}

catch(Exception e){

System.out.println("error executing: " cmd[0]);

}

这里要使用到的系统命令有几个:

path/java file

用第二个jvm(path为第二个jre/bin/地址)运行java程序file

tasklist > log.txt

将当前系统进程写以“任务管理器”的格式()写入log.txt文件中,关于tasklist使用细节,如查询某个进程ID的信息可以使用命令 >tasklist /? 进行查询

这两步均在第一个虚拟机完成,简单!!!

二、常规方法使用JNI

这里我给一套解决方案,网上有很多相关代码,自己去找找;

这套方案也可以实现,这里我使用简单的实现方法用C#来做监控,但这这个方案明显有其不足之处;就是测试对象的JNI接口会被触发,当然,如果不要求数据的准确性,单从比较的角度去看,只要运行的没有本身没有使用到JNI这个方案还是可行的。

关键词:
【推荐给好友】【关闭】
最新五条评论
查看全部评论
评论总数 0 条
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名
注册