Golang OSEXEC,实时内存使用情况

Golang OSEXEC,实时内存使用情况,第1张

Golang OS / EXEC,实时内存使用情况

这是我在Linux上使用的:

func calculateMemory(pid int) (uint64, error) {    f, err := os.Open(fmt.Sprintf("/proc/%d/smaps", pid))    if err != nil {        return 0, err    }    defer f.Close()    res := uint64(0)    pfx := []byte("Pss:")    r := bufio.NewScanner(f)    for r.Scan() {        line := r.Bytes()        if bytes.HasPrefix(line, pfx) { var size uint64 _, err := fmt.Sscanf(string(line[4:]), "%d", &size) if err != nil {     return 0, err } res += size        }    }    if err := r.Err(); err != nil {        return 0, err    }    return res, nil}

函数返回给定PID的PSS(比例设置大小),以KB表示。如果您刚刚开始该过程,则应该有权访问相应的/
proc文件。

使用内核3.0.13测试。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5427901.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存