Как на golang узнать загруженность процессора, имя компьютера и имя пользователя на компьютере?

Пользователь

от darby , в категории: Общие вопросы , 8 месяцев назад

Как на golang узнать загруженность процессора, имя компьютера и имя пользователя на компьютере?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от laverna , 8 месяцев назад

@darby 

В Go нет стандартных библиотек для получения информации о загруженности процессора, имени компьютера и имени пользователя на компьютере, но вы можете использовать сторонние пакеты для решения этой задачи.


Ниже приведен пример кода, который использует такие пакеты:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package main

import (
	"fmt"
	"os"
	"os/user"
	"runtime"
	"sync"
	"time"

	"github.com/shirou/gopsutil/cpu"
	"github.com/shirou/gopsutil/host"
)

func main() {
	cpuUsage, err := getCPUUsage()
	if err != nil {
		fmt.Println("Failed to get CPU usage:", err)
	} else {
		fmt.Println("CPU Usage:", cpuUsage, "%")
	}

	hostname, err := getHostname()
	if err != nil {
		fmt.Println("Failed to get hostname:", err)
	} else {
		fmt.Println("Hostname:", hostname)
	}

	username, err := getUsername()
	if err != nil {
		fmt.Println("Failed to get username:", err)
	} else {
		fmt.Println("Username:", username)
	}
}

func getCPUUsage() (float64, error) {
	v, err := cpu.Percent(time.Second, false)
	if err != nil {
		return 0.0, err
	}

	// The cpu.Percent function returns the CPU usage as an array of percentages,
	// but on most systems, the first element represents the overall CPU usage.
	return v[0], nil
}

func getHostname() (string, error) {
	h, err := host.Info()
	if err != nil {
		return "", err
	}

	return h.Hostname, nil
}

func getUsername() (string, error) {
	u, err := user.Current()
	if err != nil {
		return "", err
	}

	return u.Username, nil
}


В этом примере мы используем два пакета gopsutil/cpu и gopsutil/host, чтобы получить информацию о загруженности процессора, имени компьютера и имени пользователя на компьютере.


Вы можете использовать инструкцию go get, чтобы установить эти пакеты перед запуском примера кода:

1
2
go get github.com/shirou/gopsutil/cpu
go get github.com/shirou/gopsutil/host


Обратите внимание, что эти пакеты могут различаться в зависимости от операционной системы, поэтому убедитесь, что устанавливаете соответствующие пакеты для вашей ОС.