Skip to content

Commit 4e8cb73

Browse files
authored
Merge pull request #919 from devlights/add-psutil-exvmem
2 parents 6195981 + da388e9 commit 4e8cb73

File tree

4 files changed

+75
-0
lines changed

4 files changed

+75
-0
lines changed

examples/psutil/mem/exmem/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
app

examples/psutil/mem/exmem/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# これは何?
2+
3+
[gopsutil](https://github.com/shirou/gopsutil)を用いてメモリ消費量を取得するサンプルです。
4+
5+
v4.24.5から追加された Ex構造体 を利用するサンプルです。
6+
7+
```sh
8+
$ task
9+
task: [clean] rm -f ./app
10+
task: [build] go build -o app .
11+
task: [run] ./app
12+
07:40:14 [NORMAL] {"total":67421265920,"available":52788764672,"used":13726756864,"usedPercent":20.359684257913145,"free":31725797376,"active":6271885312,"inactive":21599387648,"wired":0,"laundry":0,"buffers":1032192,"cached":21967679488,"writeBack":0,"dirty":3129344,"writeBackTmp":0,"shared":158375936,"slab":5851881472,"sreclaimable":3740106752,"sunreclaim":2111774720,"pageTables":174186496,"swapCached":22228992,"commitLimit":436363812864,"committedAS":31354429440,"highTotal":0,"highFree":0,"lowTotal":0,"lowFree":0,"swapTotal":402653179904,"swapFree":402577944576,"mapped":1446465536,"vmallocTotal":35184372087808,"vmallocUsed":204656640,"vmallocChunk":0,"hugePagesTotal":0,"hugePagesFree":0,"hugePagesRsvd":0,"hugePagesSurp":0,"hugePageSize":2097152,"anonHugePages":12582912}
13+
07:40:14 [EX ] {"activefile":5806538752,"inactivefile":12259991552,"activeanon":465346560,"inactiveanon":9339396096,"unevictable":87674880}
14+
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# https://taskfile.dev
2+
3+
version: '3'
4+
5+
tasks:
6+
default:
7+
cmds:
8+
- task: clean
9+
- task: build
10+
- task: run
11+
build:
12+
cmds:
13+
- go build -o app .
14+
run:
15+
cmds:
16+
- ./app
17+
clean:
18+
cmds:
19+
- rm -f ./app

examples/psutil/mem/exmem/main.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//go:build linux
2+
3+
package main
4+
5+
import (
6+
"log"
7+
8+
"github.com/shirou/gopsutil/v4/mem"
9+
)
10+
11+
func main() {
12+
log.SetFlags(log.Ltime)
13+
14+
if err := run(); err != nil {
15+
log.Fatal(err)
16+
}
17+
}
18+
19+
func run() error {
20+
var (
21+
vmem *mem.VirtualMemoryStat
22+
exVmem *mem.ExVirtualMemory
23+
err error
24+
)
25+
// マルチプラットフォームで利用出来る方法
26+
vmem, err = mem.VirtualMemory()
27+
if err != nil {
28+
return err
29+
}
30+
31+
// 各OSごとに特化している情報を取得する方法
32+
exVmem, err = mem.NewExLinux().VirtualMemory()
33+
if err != nil {
34+
return err
35+
}
36+
37+
log.Printf("[NORMAL] %s", vmem)
38+
log.Printf("[EX ] %s", exVmem)
39+
40+
return nil
41+
}

0 commit comments

Comments
 (0)