尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Go语言系统信息获取示例

Go语言系统信息获取示例
📅 发布时间:2026/6/18 20:40:12

Go语言系统信息获取示例

本项目演示了如何在Go语言中获取系统信息,类似Python的platform模块功能。

主要功能

标准库 runtime 包

  • Go版本信息
  • 操作系统类型
  • 系统架构
  • CPU核心数
  • 内存统计信息
  • Goroutine信息

第三方库 gopsutil

  • 主机信息: 主机名、运行时间、操作系统版本、内核版本等
  • CPU信息: CPU型号、厂商、频率、核心数、使用率等
  • 内存信息: 总内存、已用内存、缓存、交换分区等
  • 磁盘信息: 磁盘分区、使用率、文件系统等
  • 网络信息: 网络接口、IP地址、网络IO统计等

项目结构

.
├── main.go                 # 主程序,展示基本系统信息
├── system_info_test.go     # 详细的测试文件,包含所有功能测试
├── go.mod                  # Go模块文件
└── go.sum                  # 依赖校验文件

依赖

主要依赖第三方库:

  • github.com/shirou/gopsutil/v3 - 跨平台的系统信息获取库

安装和运行

  1. 初始化项目:

    go mod init system-info-test
    go get github.com/shirou/gopsutil/v3
    go mod tidy
    
  2. 运行主程序:

    go run main.go
    
  3. 运行详细测试:

    go test -v
    
  4. 运行性能测试:

    go test -bench=.
    
  5. 运行特定测试:

    go test -v -run TestCPUInfo        # 只测试CPU信息
    go test -v -run TestMemoryInfo     # 只测试内存信息
    go test -v -run TestDiskInfo       # 只测试磁盘信息
    

API对比

Python platform 模块对比

Python platform Go gopsutil 功能描述
platform.system() runtime.GOOS 操作系统名称
platform.machine() runtime.GOARCH 机器架构
platform.processor() cpu.Info() 处理器信息
platform.platform() host.Info() 平台信息
platform.node() host.Info().Hostname 主机名
platform.release() host.Info().KernelVersion 系统发行版本

示例代码

package mainimport ("fmt""runtime""github.com/shirou/gopsutil/v3/host""github.com/shirou/gopsutil/v3/cpu""github.com/shirou/gopsutil/v3/mem"
)func main() {// 获取基本信息fmt.Printf("操作系统: %s\n", runtime.GOOS)fmt.Printf("架构: %s\n", runtime.GOARCH)fmt.Printf("CPU核心数: %d\n", runtime.NumCPU())// 获取主机信息hostInfo, _ := host.Info()fmt.Printf("主机名: %s\n", hostInfo.Hostname)fmt.Printf("平台: %s %s\n", hostInfo.Platform, hostInfo.PlatformVersion)// 获取CPU信息cpuInfo, _ := cpu.Info()if len(cpuInfo) > 0 {fmt.Printf("CPU: %s\n", cpuInfo[0].ModelName)}// 获取内存信息memInfo, _ := mem.VirtualMemory()fmt.Printf("总内存: %d MB\n", memInfo.Total/1024/1024)fmt.Printf("内存使用率: %.2f%%\n", memInfo.UsedPercent)
}

测试功能

测试文件 system_info_test.go 包含以下测试:

  1. TestSystemInfo - 基本系统信息
  2. TestHostInfo - 主机详细信息
  3. TestCPUInfo - CPU详细信息和使用率
  4. TestMemoryInfo - 内存和交换分区信息
  5. TestDiskInfo - 磁盘分区和使用情况
  6. TestNetworkInfo - 网络接口和IO统计
  7. TestAllSystemInfo - 综合测试
  8. BenchmarkCPUUsage - CPU使用率获取性能测试
  9. BenchmarkMemoryInfo - 内存信息获取性能测试

跨平台支持

gopsutil 库支持多个操作系统:

  • Linux
  • Windows
  • macOS
  • FreeBSD
  • OpenBSD

注意事项

  1. 某些系统信息获取可能需要管理员权限
  2. 网络信息在不同操作系统上可能有差异
  3. CPU使用率获取需要一定时间间隔来计算
  4. 部分功能在虚拟化环境中可能受限

扩展功能

可以进一步扩展获取:

  • 进程信息
  • 服务信息
  • 温度传感器
  • GPU信息
  • 负载均衡信息

相关资源

  • gopsutil GitHub
  • Go runtime 包文档
  • 系统监控最佳实践

本文来自博客园,作者:元贞,转载请注明原文链接:https://www.cnblogs.com/yuleicoder/p/19081738

相关新闻

  • OpenCSG 哈投达成战略合作,加速东北企业AI转型
  • 收录笔记:蜘蛛池,蜘蛛池出租 - 蚂蚁站群
  • 核心漏洞开发实战:Win32漏洞挖掘与防护绕过深度解析

最新新闻

  • 大朗镇美客多入驻培训:墨西哥市场0-1突破 - 东莞选校指南
  • 杭州瓷砖空鼓松动修复:当地反馈比较好的 5 家正规靠谱门店推荐 | 卫生间 / 客厅空鼓专修(2026 最新) - 金修达家庭维修
  • 好的创业项目推荐
  • NXP IEC60730B安全库看门狗测试函数FS_WDOG_Check深度解析与应用实战
  • 2026年当下津市商务车内饰包覆正规门店哪家强:宏骏一站式汽车服务中心常德店深度解析 - 品牌鉴赏官2026
  • NSK ZFT3212-3 滚珠丝杠技术解析

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号