如何使用 C++ 获取 Linux 中的总 cpu 使用率

2024-01-05

我正在尝试获取 CPU 总使用率(以百分比为单位)。首先我应该首先说“top”根本不行,因为CPU转储之间存在延迟,它需要2次转储和几秒钟,这会挂起我的程序(我不想给它自己的线程)

接下来我尝试的是“ps”,它是即时的,但总是给出非常高的总数(20+),当我真正让我的CPU做某事时,它保持在大约20...

还有其他方法可以获取 cpu 使用率吗?如果超过一秒或更长的时间段并不重要......不过,更长的时间段会更有用。


猫 /proc/stat

http://www.linuxhowtos.org/System/procstat.htm http://www.linuxhowtos.org/System/procstat.htm

我同意上面这个答案。该文件中的 cpu 行给出了系统执行不同类型处理所花费的“jiffies”总数。

您需要做的是对该文件进行两次读取,按照您需要的时间间隔进行间隔。这些数字是递增的值(受整数翻转影响),因此要获得 %cpu,您需要计算在您的时间间隔内经过了多少 jiffies,以及用于工作的 jiffies 数量。

例如 假设在 14:00:00 你有

中央处理器 4698 591 262 8953 916 449 531

Total_jiffies_1 =(所有值的总和)= 16400

work_jiffies_1 =(用户、nice、系统的总和 = 前 3 个值)= 5551

在 14:00:05 你有

中央处理器 4739 591 289 9961 936 449 541

总计_jiffies_2 = 17506

work_jiffies_2 = 5619

所以这段时间内的 %cpu 使用率是:

工作周期 = work_jiffies_2 - work_jiffies_1 = 68

期间总计 = 总计 jiffies_2 - 总计 jiffies_1 = 1106

%cpu = 周期内工作量 / 周期内总工作量 * 100 = 6.1%

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C++ 获取 Linux 中的总 cpu 使用率 的相关文章

  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 更改 Angular 2 的 Material 设计主题

    我正在尝试使用角材料2 https github com angular material2与我的 Angular 2 应用程序 我没有找到如何全局更改材质主题 primaryColor ETC 我知道 Angular Material 2
  • XElement Add 函数将 xmlns="" 添加到 XElement

    我有一个为列表对象生成 xml 的函数 public XDocument ToXML foreach var row in this var xml row ToXml template Root Add xml return templa
  • 我的角度中特定页面的标题隐藏

    我正在研究角度项目 我的需要是仅在登录页面上隐藏标题块 我试图隐藏登录页面上的标题 但它对我来说仍然不起作用 你能帮我在登录状态下隐藏它吗 这是我的索引 html div src div div class div div div 这是我的
  • 如何在不删除子元素的情况下删除包装器(父元素)?

    我想删除父级而不删除子级 这可能吗 HTML 结构 div class wrapper img div div class button Remove wrapper div 单击按钮后我想要 img div class button Re
  • 从连续数据流播放音频 (iOS)

    整个早上我都在为这个问题苦苦思索 我已经设置了与返回音频数据的数据源的连接 它是一个录音设备 因此数据没有设定长度 数据只是流入 就像 如果您要打开一个到收音机的流 我已经成功地接收了我的代码中的所有数据包 现在我只需要玩它 我想播放传入的
  • 按降序对 int 数组进行排序会给出“方法不适用于参数”

    我正在尝试使用以下代码在 Java 中按降序对数组进行排序 for int i 0 i lt arr length i Comparator comparator Collections reverseOrder Arrays sort a
  • 用于数据库表的 Rails 3 I18n

    我正在寻找一些有关使用国际化最佳实践的提示和建议 我四处搜寻 但我对所读到的内容并不满意 我读过的大多数文章都集中在使用 yml 文件进行国际化 这在我的情况下不起作用 我目前有几个带有英文文本的数据库表 其中一些表格的文本字段只有几句话长
  • 大数组上的 Python MemoryError

    这是我尝试运行的 python 脚本 n 50000000000 50 billion b 0 n for x in range 0 n b x random randint 1 899999 但我得到的输出是 E python gt py
  • Android - POST 到 RESTful Web 服务

    我正在寻找有关如何将数据发布到 Android 应用程序中的 Web 服务的一些指导 不幸的是 这是一个学校项目 所以我无法使用外部库 Web 服务有一个基本 URL 例如 http example com service create 并
  • LocationManager.removeUpdates(listener) 不删除位置侦听器

    我的应用场景是我想跟踪员工的位置 我有一个广播接收器 它监听设备启动广播并注册警报管理器 当警报管理器勾选时 它会注册两个位置侦听器 一个用于侦听 GPS 另一个用于侦听网络 我希望当我在 onLocationChange 方法中获得第一次
  • 如何为Azure数据工厂链接服务中的azure表存储/blob存储动态提供连接字符串

    动态更改 Azure 数据工厂中表存储或 Blob 存储的连接字符串 目前 我可以看到数据库相关数据集的此类选项吗 如何在表或 Blob 存储中实现相同的效果 我相信这就是你想要的 https learn microsoft com en
  • 如何禁用 ionic 4 中的侧边菜单?

    我在用 this menuCtrl swipeEnable false 对于 ionic 3 应用程序 这对于禁用侧面菜单效果很好 但是 它不适用于 ionic 4 下面是我的 ionic 4 代码示例 登录 page ts constru
  • 使用模数时除以零误差

    模运算符应该显示余数 像echo 34 100 输出34 但为什么我会得到一个 Division by zero 此代码的错误echo 34 4294967296 4294967296 is 2 32并且不能表示为 32 位数字 它会回绕到
  • Angular 无法在 IE 8 中工作,无法为我的指令创建自定义元素

    在过去的几周里 我从头开始构建了我的应用程序 我在执行说明时做到了here http docs angularjs org guide ie 我不得不说 在任何普通浏览器 例如 Mozilla 或 Chrome 上一切都很好 而且 Angu
  • Excel RoundUp 与 .NET Math.Round

    在 Excel 中 ROUNDUP 474 872126666666 2 gt 474 88在 NET中 Math Round 474 87212666666666666666666666667 2 MidpointRounding ToE
  • 在 keras 中使用哪些合并层?

    Keras 有许多不同的方式来合并输入 例如Add Subtract Multiply concatenate etc 它们是否都具有相同的效果 或者是否存在更适合其中一种的情况 这实际上取决于您想要实现的目标 但让我们简单地看一下不同的合
  • 带有命名文件的 HTTP POST 多部分

    我需要发送一个 多部分 HTTP 请求 其中包含一个名为的文件 这似乎比我想象的更难实现 我试图找出一种用 HTTPoison 来做到这一点的方法 但我无法让它使用 文件 以外的名称 https github com edgurgel ht
  • 连接与相关存在子查询

    在 Derby 和 或 MySQL 中 我想知道以下性能 select c0 documentid from contentblob as c0 where c0 documentid gt and c0 blobid and exists
  • CS1703:在 Xamarin.Droid 中,我应该使用位于 Mono.Framework 还是 System.Runtime 中的 .Net Standard windowsruntime.dll?

    我正在尝试建立这个 Android Xamarin 项目 https github com RobGibbens ResilientServices 并且收到编译时错误 ResilientServices ResilientServices
  • 如何使用 C++ 获取 Linux 中的总 cpu 使用率

    我正在尝试获取 CPU 总使用率 以百分比为单位 首先我应该首先说 top 根本不行 因为CPU转储之间存在延迟 它需要2次转储和几秒钟 这会挂起我的程序 我不想给它自己的线程 接下来我尝试的是 ps 它是即时的 但总是给出非常高的总数 2