「java查看cpu占用」java查看进程占用内存大小
本篇文章给大家谈谈java查看cpu占用,以及java查看进程占用内存大小对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 如何查看服务器的CPU使用率
- 2、查看Java哪个线程占用CPU资源
- 3、java windows怎么查看线程占用cpu
- 4、怎么查看java程序运行的峰值内存消耗(含虚拟机)和CPU消耗(ms)
- 5、查看JAVA进程中哪个线程CPU消耗最高
- 6、java怎样获取CPU占用率和硬盘占用率
java 如何查看服务器的CPU使用率
public static String 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 "CPU使用率:"+Double.valueOf(PERCENT * (busytime)*1.0 / (busytime + idletime)).intValue()+"%";
} else {
return "CPU使用率:"+0+"%";
}
} catch (Exception ex) {
ex.printStackTrace();
return "CPU使用率:"+0+"%";
}
}
查看Java哪个线程占用CPU资源
以下方法在LINUX下执行通过:
1.先定位占用cpu高的进程
top
2.使用以下命令
ps p 14766 -L -o pcpu,pid,tid,time,tname,stat,psr | sort -n -k1 -r
其中14766是刚才1中cpu占用率高的进程pid
3.2.4 32525 32537 01:58:41 ? Sl 6
0.8 32525 1771 00:43:12 ? Sl 0
0.8 32525 1769 00:39:46 ? Sl 0
0.7 32525 12324 00:33:36 ? Sl 0
0.5 32525 1772 00:27:50 ? Sl 0
0.5 32525 1768 00:25:45 ? Sl 0
0.4 32525 30760 00:19:13 ? Sl 0
0.4 32525 1773 00:22:36 ? Sl 0
0.4 32525 1770 00:20:25 ? Sl 0
0.3 32525 32385 00:00:10 ? Sl 0
0.1 32525 31668 00:00:03 ? Sl 0
0.1 32525 31667 00:00:03 ? Sl 0
0.1 32525 1790 00:07:10 ? Sl 1
其中第3个结果就是此进程中有问题的线程nid
4.通过jstack命令dump出堆栈
"AppController_ThreadPool_L2_Pool Thread" daemon prio=10 tid=0x0000000051c2b000 nid=0x7bb3 in Object.wait() [0x000000005e3c5000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.company.threadpool.ThreadPoolImpl$PoolThread.run(ThreadPoolImpl.java:142)
- locked 0x00002aaca30341a8 (a org.company.threadpool.ThreadPoolImpl$PoolThread)
其中的nid就是线程的编码,只不过是经过了16进制的转换。
即十进制的31776对应的十六进制)0x7bb3,定位到线程后一切好办。
java windows怎么查看线程占用cpu
1、首先dump出该进程的所有线程及状态使用命令jstackPID命令打印出CPU占用过高进程的线程栈.jstack-l56835683.stack将进程id为5683的线程栈输出到了文件2、使用top命令找到耗cpu的线程使用top-H-pPID命令查看对应进程是哪个线程占
怎么查看java程序运行的峰值内存消耗(含虚拟机)和CPU消耗(ms)
查看java程序运行的峰值内存消耗(含虚拟机)和CPU消耗(ms)的方法:
用jdk自带的工具,jconsole.exe;
令行输入jconsole.exe;
就会出现一个window;
根据进程号选择要监控的虚拟机;
里面有内存、线程、包括各种对象定义占有的内存,都可以看到。
查看JAVA进程中哪个线程CPU消耗最高
一,在centos linux 上查看进程占用cpu过高
top
shift+h
查看哪个进程程消耗最高
二,查看JAVA进程中哪个线程消耗最高
2.1 导出java运行的线程信息
jstack 进程id(jps查看)
jstack 进程id ps.txt
jstack -l 进程id (窗口打印)
//另外还有一种方式
如果启动方式如下:
nohup java -classpath conf/:my.jar com.tank.manClass./log.out 21
则执行: kill -3 PID,进程信息会输出到/log.out
2.2 查找最消耗cpu的java线程
jps
找到java进程PID
命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid
通过%CPU和 TIME,判断占用的线程TID
找到TID,转换成16进制,然后在上面(jstack 进程id ps.txt)导出的文件中搜索,就可以定位到具体的线程,类。
java怎样获取CPU占用率和硬盘占用率
通过jmx可以监控vm内存使用,系统内存使用等,以下是网上某博客代码,特点是通过window和linux命令获得CPU使用率。
利用java程序实现获取计算机cpu利用率和内存使用信息。
package com.amgkaka.performance;
/** *//**
* 监视信息的JavaBean类.
* @author amg
* @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;
}
}
java查看cpu占用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java查看进程占用内存大小、java查看cpu占用的信息别忘了在本站进行查找喔。