当前位置: 首页 > 编程笔记 >

linux下通过go语言获得系统进程cpu使用情况的方法

谢麒
2023-03-14
本文向大家介绍linux下通过go语言获得系统进程cpu使用情况的方法,包括了linux下通过go语言获得系统进程cpu使用情况的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了linux下通过go语言获得系统进程cpu使用情况的方法。分享给大家供大家参考。具体分析如下:

这段代码通过linux的系统命令 ps来分析cpu的使用情况,代码如下:

package main

import (

    "bytes"

    "log"

    "os/exec"

    "strconv"

    "strings"

)

type Process struct {

    pid int

    cpu float64

}

func main() {

    cmd := exec.Command("ps", "aux")

    var out bytes.Buffer

    cmd.Stdout = &out

    err := cmd.Run()

    if err != nil {

        log.Fatal(err)

    }

    processes := make([]*Process, 0)

    for {

        line, err := out.ReadString('\n')

        if err!=nil {

            break;

        }

        tokens := strings.Split(line, " ")

        ft := make([]string, 0)

        for _, t := range(tokens) {

            if t!="" && t!="\t" {

                ft = append(ft, t)

            }

        }

        log.Println(len(ft), ft)

        pid, err := strconv.Atoi(ft[1])

        if err!=nil {

            continue

        }

        cpu, err := strconv.ParseFloat(ft[2], 64)

        if err!=nil {

            log.Fatal(err)

        }

        processes = append(processes, &Process{pid, cpu})

    }

    for _, p := range(processes) {

        log.Println("Process ", p.pid, " takes ", p.cpu, " % of the CPU")

    }

}

希望本文所述对大家的Go语言程序设计有所帮助。

 类似资料:
  • 本文向大家介绍python在linux系统下获取系统内存使用情况的方法,包括了python在linux系统下获取系统内存使用情况的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python在linux系统下获取系统内存使用情况的方法。分享给大家供大家参考。具体如下: 将上面的代码保存为:memorymonitor.py 调用方法如下: 希望本文所述对大家的Python程序设计有所帮助

  • 问题内容: 我看到有几个节点程序包可以让您查找特定进程的用法,例如https://www.npmjs.com/package/usage 我正在尝试获取整体服务器使用情况/状态(CPU和内存),而不仅仅是一个特定的进程或另一个。甚至磁盘空间使用情况。 我目前找不到类似的东西,这可能吗? 问题答案: 本机模块os可以为您提供一些内存和cpu使用情况统计信息。 cpus()函数为您提供了平均值,但是您

  • 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识,在这篇文章当中,我们将会学到以下内容源程序编译,Makefile的编写,程序库的链接等。

  • 本文向大家介绍VC下通过系统快照实现进程管理的方法,包括了VC下通过系统快照实现进程管理的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了VC下通过系统快照实现进程管理的方法,分享给大家供大家参考。具体实现方法如下: 一、引言   每一个应用程序实例在运行起来后都会在当前系统下产生一个进程,大多数应用程序均拥有可视界面,用户可以通过标题栏上的关闭按钮关闭程序。但是也有为数不少的在后台运

  • 本文向大家介绍go语言通过管道连接两个命令行进程的方法,包括了go语言通过管道连接两个命令行进程的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言通过管道连接两个命令行进程的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 如果你想动态的了解一下系统资源的使用状况,以及查看当前系统中到底是哪个环节最占用系统资源,就可以使用  vmstat 命令。 vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。此命令的基本格式有如下 2 种: [root@localhost ~]# vmstat [