网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> Java编程 >> 文章正文
  关于用java监视系统进程问题,两个解决方案            【字体:
关于用java监视系统进程问题,两个解决方案
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-2    
用第一个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这个方案还是可行的。
 




本文来源:http://blog.csdn.net/EriQi/archive/2007/07/18/1698076.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     用java实现web服务器
     用java快速开发linux gu…
     正则表达式分解siemens交…
     [portal参考手册]目录
     jsp中调用oracle存储过程…
  • JSP中JavaBean的生命周期

  • Java Swing实现俄罗斯方块

  • 快速、简便使用AJAX技术的三…

  • java异常处理机制的深入理解

  • [转]Java堆和栈的区别 经典总…

  • 关于java Applet

  • java 设计工厂模式

  • Core Java 之旅

  • 专访Java之父:Java未来的发…

  • 开发手记---JAVA数据库连接池

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David