mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-12-19 16:30:07 +08:00
30 lines
798 B
Go
30 lines
798 B
Go
// Package memory return MemoryInfoStat
|
|
// modify from https://github.com/shirou/gopsutil/tree/v4.25.8/process
|
|
package memory
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"math"
|
|
)
|
|
|
|
var ErrNotImplementedError = errors.New("not implemented yet")
|
|
|
|
type MemoryInfoStat struct {
|
|
RSS uint64 `json:"rss"` // bytes
|
|
VMS uint64 `json:"vms"` // bytes
|
|
}
|
|
|
|
// PrettyByteSize convert size in bytes to Bytes, Kilobytes, Megabytes, GB and TB
|
|
// https://gist.github.com/anikitenko/b41206a49727b83a530142c76b1cb82d?permalink_comment_id=4467913#gistcomment-4467913
|
|
func PrettyByteSize(b uint64) string {
|
|
bf := float64(b)
|
|
for _, unit := range []string{"", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"} {
|
|
if math.Abs(bf) < 1024.0 {
|
|
return fmt.Sprintf("%3.1f%sB", bf, unit)
|
|
}
|
|
bf /= 1024.0
|
|
}
|
|
return fmt.Sprintf("%.1fYiB", bf)
|
|
}
|