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

作者:两把刷子 时间:2024-05-08 10:13:01 

本文实例讲述了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语言程序设计有所帮助。

标签:linux,go语言,方法
0
投稿

猜你喜欢

  • 语义化提高页面质量

    2007-10-07 11:56:00
  • Golang 操作TSV文件的实战示例

    2023-07-18 06:46:01
  • python识别图像并提取文字的实现方法

    2023-06-07 18:36:36
  • 详解Swift中属性的声明与作用

    2023-04-16 07:26:17
  • MySQL自增列插入0值的解决方案

    2024-01-22 00:15:09
  • Django 状态保持搭配与存储的实现

    2021-05-10 04:16:00
  • 用XMLHTTPRequest对象进行客户端验证

    2008-03-03 12:38:00
  • Python numpy生成矩阵基础用法实例代码

    2023-01-03 04:21:05
  • 分析Python的Django框架的运行方式及处理流程

    2022-03-13 14:47:50
  • python实现自动化之文件合并

    2023-12-27 07:11:37
  • python基于xml parse实现解析cdatasection数据

    2023-08-18 13:27:36
  • python中单双下划线的区别对比分析

    2023-12-18 23:58:45
  • Flask中基于Token的身份认证的实现

    2022-11-20 06:45:53
  • Python Web框架Flask中使用新浪SAE云存储实例

    2022-11-03 06:27:16
  • Python 26进制计算实现方法

    2022-12-09 03:26:36
  • 利用Python实现好看的水波特效

    2023-05-26 22:23:53
  • python通过BF算法实现关键词匹配的方法

    2022-10-19 03:56:37
  • 从SQL Server2000升级到2005的过程解析

    2009-01-13 14:07:00
  • jupyter notebook运行命令显示[*](解决办法)

    2022-02-19 01:23:10
  • 详解Python GUI工具取色器

    2021-01-23 10:12:04
  • asp之家 网络编程 m.aspxhome.com