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

sky18701030

sky18701030

2016-02-19 19:28

今天图老师小编要跟大家分享使用Java来监视系统进程的两个解决方案,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

  用第一个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这个方案还是可行的。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
使用Java来监视系统进程的两个解决方案

两个不同数据库表的分页显示解决方案

ASP
两个不同数据库表的分页显示解决方案

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

纯java的Excel解决方案

编程语言 网络编程
纯java的Excel解决方案

数据备份系统解决方案

编程语言 网络编程
数据备份系统解决方案

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Win7系统CMD命令无法使用的解决方案

电脑网络
Win7系统CMD命令无法使用的解决方案

MySQL下数据备份系统解决方案

编程语言 网络编程
MySQL下数据备份系统解决方案

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

pdz转pdf图文教程

pdz转pdf图文教程

jsp的八个隐含对象

jsp的八个隐含对象
下拉加载更多内容 ↓