mirror of
https://github.com/shirou/gopsutil.git
synced 2025-04-29 13:49:21 +08:00

This change changes and documents the (previously undocumented) behavior of Used to "RAM used by programs". We also remove the undocumented and unused Shared field of that struct. So with this change in place, the VirtualMemoryStruct contains: * three human-consumable fields for Total, Used and Available memory * one human-consumable UsedPercentage field * a number of kernel specific fields
65 lines
1.7 KiB
Go
65 lines
1.7 KiB
Go
package mem
|
|
|
|
import (
|
|
"encoding/json"
|
|
)
|
|
|
|
// Memory usage statistics. Total, Available and Used contain numbers of bytes
|
|
// for human consumption.
|
|
//
|
|
// The other fields in this struct contain kernel specific values.
|
|
type VirtualMemoryStat struct {
|
|
// Total amount of RAM on this system
|
|
Total uint64 `json:"total"`
|
|
|
|
// RAM available for programs to allocate
|
|
//
|
|
// This value is computed from the kernel specific values.
|
|
Available uint64 `json:"available"`
|
|
|
|
// RAM used by programs
|
|
//
|
|
// This value is computed from the kernel specific values.
|
|
Used uint64 `json:"used"`
|
|
|
|
// Percentage of RAM used by programs
|
|
//
|
|
// This value is computed from the kernel specific values.
|
|
UsedPercent float64 `json:"used_percent"`
|
|
|
|
// This is the kernel's notion of free memory; RAM chips whose bits nobody
|
|
// cares about the value of right now. For a human consumable number,
|
|
// Available is what you really want.
|
|
Free uint64 `json:"free"`
|
|
|
|
// OS X / BSD specific numbers:
|
|
// http://www.macyourself.com/2010/02/17/what-is-free-wired-active-and-inactive-system-memory-ram/
|
|
Active uint64 `json:"active"`
|
|
Inactive uint64 `json:"inactive"`
|
|
Wired uint64 `json:"wired"`
|
|
|
|
// Linux specific numbers
|
|
// https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-meminfo.html
|
|
Buffers uint64 `json:"buffers"`
|
|
Cached uint64 `json:"cached"`
|
|
}
|
|
|
|
type SwapMemoryStat struct {
|
|
Total uint64 `json:"total"`
|
|
Used uint64 `json:"used"`
|
|
Free uint64 `json:"free"`
|
|
UsedPercent float64 `json:"used_percent"`
|
|
Sin uint64 `json:"sin"`
|
|
Sout uint64 `json:"sout"`
|
|
}
|
|
|
|
func (m VirtualMemoryStat) String() string {
|
|
s, _ := json.Marshal(m)
|
|
return string(s)
|
|
}
|
|
|
|
func (m SwapMemoryStat) String() string {
|
|
s, _ := json.Marshal(m)
|
|
return string(s)
|
|
}
|