b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解决方案:[Ubuntu] Linux如何解决java进程→CP占用的系统资源利用率高的问题

电脑杂谈  发布时间:2020-09-13 20:04:13  来源:网络整理

如何定位死循环或高cpu使用率(linux)_linux查看cpu使用率高_循环定位软件有什么

一、 Linux如何通过java进程(简单的实现)定位系统资源占用过多的问题,首先在linux文件夹中创建TheradDemo.java文件,该文件显然将以10行无休止的循环结束,这将在此时占用大量的CPU资源。以下linux命令用于定位此问题

import java.util.Scanner;
public class ThreadDemo1{
  public static void main(String[] args) throws Exception{
      System.out.println(" Thread start...");  
	  Thread t = new Thread(new Runnable(){
	  
		@Override
		public void run(){
			for(;;){   //10行-死循环处!!!!!!!
			}
		}
  });
  t.start();
  t.join();
  System.out.println("Thread end ...");
  }}

在这里插入图片描述

如何定位死循环或高cpu使用率(linux)_循环定位软件有什么_linux查看cpu使用率高

编译并执行上述Java文件,

在这里插入图片描述

jps / ps将当前进程的PID视为4641

循环定位软件有什么_linux查看cpu使用率高_如何定位死循环或高cpu使用率(linux)

在这里插入图片描述

top -p 4641查看当前进程的资源使用情况

在这里插入图片描述

循环定位软件有什么_如何定位死循环或高cpu使用率(linux)_linux查看cpu使用率高

top -Hp 4641查看当前进程中所有线程的使用情况(请参阅CPU使用率最高的线程465 0)

在这里插入图片描述

在这里插入图片描述

如何定位死循环或高cpu使用率(linux)_循环定位软件有什么_linux查看cpu使用率高

jstack 4641输出当前进程中所有线程的调用堆栈信息

(检查与占用最高CPU的线程号4650相等的nid(十六进制0X122A),并找到top命令输出的资源占用率高的线程的调用堆栈信息)

在这里插入图片描述

在调用堆栈信息的顶部找到代码提示(代码文件和行号)。关于java代码问题的具体分析


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-319122-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...