Golang利用第三方包获取本机cpu使用率以及内存使用情况教程
第三方包下载
$ github.com/shirou/gopsutil
获取内存方面的信息
<pre class="brush:go;gutter:true;">package main
import (
"fmt"
"github.com/shirou/gopsutil/mem"
)
func main() {
v, _ := mem.VirtualMemory()
fmt.Println(v)
}
<pre class="brush:go;gutter:true;">total // 内存大小
available // 闲置可用内存
used // 已使用内存
usedPercent // 已使用百分比
获取cpu方面的信息
<pre class="brush:go;gutter:true;">package main
import (
"fmt"
"github.com/shirou/gopsutil/cpu"
)
func main() {
res, err := cpu.Times(false) // false是展示全部总和 true是分布展示
if err != nil {
fmt.Println(err)
}
fmt.Println(res)
}
<pre class="brush:go;gutter:true;">cpu // 具体cpu名称
user // 用户已使用cpu数值
system // 系统已使用cpu数值
idle // 闲置的cpu数值
.Total // 获取总cpu数值
Demo
<pre class="brush:go;gutter:true;">package main
import (
"fmt"
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/mem"
)
func main() {
v, _ := mem.VirtualMemory()
res, err := cpu.Times(false)
if err != nil {
fmt.Println(err)
}
fmt.Println(res[0].Total(),res[0].User,res[0].System,res[0].Idle)
fmt.Printf("总内存: %v MB, 已使用:%v MB, 已使用百分比:%.f%%\n", v.Total>>20, v.Used>>20, ((res[0].Total()-res[0].Idle)/res[0].Total())*100)
}
-