确定C / C ++(Linux),LGPL或BSD中的CPU速度/内存是必需的

时间:2012-08-17 09:13:40

标签: c++ c linux linux-kernel lgpl

我正在为我的大学课程编写分布式,嵌入式,多主/从应用程序,作为其中的一部分,我需要一种方法来确定CPU速度,CPU使用率和可用内存每个系统在实时中没有大量内存分别消耗cpu,以便自动调整网络和设备的配置。

定期触发系统调用或读出文件(open-read-close ....)并不真正构成资源友好选项。我确定必须有一些 POSIX 兼容的解决方案吗?

系统将全部使用 Linux 作为操作系统,我应该专门使用LGPL或BSD 库进行发布。

到目前为止,我还没有找到任何符合标准的解决方案。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

以下是一些可以引导您找到解决方案的提示:

1- kernel infos

2-您可以在/proc/cpuinfo中获取该信息。 谷歌的'Proc Filesystems'。

3- extract system infos

4-另一个可能有用的StackOverflow主题here

从那以后我认为你可以引导自己找到解决方案。

答案 1 :(得分:0)

之前我必须做类似的事情,我的解决方案是为系统文件/ proc / cpuinfo和/ proc / meminfo编写文件解析器,但我不知道它是多么便携(在Ubuntu和科学Linux对我来说。)

答案 2 :(得分:0)

您需要遵循以下三个步骤:

1)使用system()或popen()从程序中调用shell命令或实用程序。 (参见:this

2)确定来自this list的实用程序,以生成利用率数据。

3)从程序中捕获这些数据并解析它以收集相关信息。