相关疑难解决方法(0)

如何从进程内部确定CPU和内存消耗?

我曾经有过从正在运行的应用程序中确定以下性能参数的任务:

  • 可用的虚拟内存总量
  • 目前使用的虚拟内存
  • 我的进程当前使用的虚拟内存
  • 总RAM可用
  • RAM目前使用
  • RAM当前由我的进程使用
  • 目前使用的CPU%
  • 我的进程当前使用的CPU百分比

代码必须在Windows和Linux上运行.尽管这似乎是一项标准任务,但在手册(WIN32 API,GNU文档)以及Internet上查找必要的信息花了我好几天,因为关于这个主题的信息太多不完整/不正确/过时了发现了那里.

为了避免其他人遇到同样的麻烦,我认为收集所有分散的信息以及我在一个地方通过反复试验找到的信息是个好主意.

c c++ memory cpu

563
推荐指数
7
解决办法
29万
查看次数

如何确定C++中Linux系统RAM的数量?

我刚编写了以下C++函数来以编程方式确定系统安装了多少RAM.它有效,但在我看来应该有一个更简单的方法来做到这一点.有人能告诉我,如果我错过了什么吗?

getRAM()
{
    FILE* stream = popen( "head -n1 /proc/meminfo", "r" );
    std::ostringstream output;
    int bufsize = 128;

    while( !feof( stream ) && !ferror( stream ))
    {
        char buf[bufsize];
        int bytesRead = fread( buf, 1, bufsize, stream );
        output.write( buf, bytesRead );
    }
    std::string result = output.str();

    std::string label, ram;
    std::istringstream iss(result);
    iss >> label;
    iss >> ram;

    return ram;
}
Run Code Online (Sandbox Code Playgroud)

首先,我popen("head -n1 /proc/meminfo")用来从系统中获取meminfo文件的第一行.该命令的输出看起来像

MemTotal:775280 kB

一旦我得到了输出istringstream,就很容易将它标记为获取我想要的信息.我的问题是,是否有更简单的方法来读取此命令的输出?是否有标准的C++库调用来读取系统RAM的数量?

c++ linux ram

24
推荐指数
2
解决办法
3万
查看次数

标签 统计

c++ ×2

c ×1

cpu ×1

linux ×1

memory ×1

ram ×1