不懂就要问,如何用 C++跨平台获取 CPU、内存使用率?

2020-05-06 11:04:51 +08:00
 liuguangxuan

想用 C++获取 CPU 、内存的使用率,要求跨平台( Windows 、Linux )。查到的解决办法如下:

  1. sigar 库,但是作者好像已经放弃维护了,没有文档可以参考,官网打不开。
  2. ACE 网络库提供了接口,但是只是获取 CPU 、内存使用率,显得有点儿太笨重了。
  3. 自己实现,根据宏来判断平台。然后调用系统接口。

请教各位大佬,有没有更好的解决办法?

4999 次点击
所在节点    C++
27 条回复
Dlad
2020-05-06 15:47:38 +08:00
有参考 cacti 吗?
snmp 协议能实现吗?
gamexg
2020-05-06 15:53:04 +08:00
c 的不知道,go 我用的是 https://github.com/shirou/gopsutil,windows 、linux 等系统都支持,可以参考下。
wzzzx
2020-05-06 19:47:42 +08:00
我之前用 Qt 也有这个需求,查资料时说是这些东西太平台相关性了,所以即便是 Qt 也没提供。自己写也不麻烦
xcstream
2020-05-06 22:47:52 +08:00
选 3
tianshiyeben
2020-05-07 09:29:14 +08:00
sigar 用着没有问题啊。这个监控工具就用 sigar 来采集系统信息的,这就是我写的监控系统。
https://github.com/tianshiyeben/wgcloud
paoqi2048
2020-05-07 11:14:29 +08:00
@tianshiyeben sigar 在 GitHub 上的最后一次更新是 Jan 4, 2016
kios
2020-05-13 15:57:35 +08:00
@gamexg 这个库我也用 感觉还不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/668858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX