测量 C++ 中函数的执行时间

2023-12-25

我想知道我的 C++ 程序中某个函数执行需要多长时间Linux。之后我想做一个速度对比。我看到了几个 time 函数,但最终从 boost 中得到了这个。时间:

process_user_cpu_clock, captures user-CPU time spent by the current process

现在,我不清楚如果我使用上述函数,我是否会得到该函数上花费的唯一CPU时间?

其次,我找不到任何使用上述功能的示例。谁能帮我看看如何使用上述功能吗?

P.S:现在,我正在使用std::chrono::system_clock::now()获得以秒为单位的时间,但是由于每次 CPU 负载不同,这给了我不同的结果。


这是C++11中非常好用的方法。你必须使用std::chrono::high_resolution_clock from <chrono> header.

像这样使用它:

#include <chrono>

/* Only needed for the sake of this example. */
#include <iostream>
#include <thread>
    
void long_operation()
{
    /* Simulating a long, heavy operation. */

    using namespace std::chrono_literals;
    std::this_thread::sleep_for(150ms);
}

int main()
{
    using std::chrono::high_resolution_clock;
    using std::chrono::duration_cast;
    using std::chrono::duration;
    using std::chrono::milliseconds;

    auto t1 = high_resolution_clock::now();
    long_operation();
    auto t2 = high_resolution_clock::now();

    /* Getting number of milliseconds as an integer. */
    auto ms_int = duration_cast<milliseconds>(t2 - t1);

    /* Getting number of milliseconds as a double. */
    duration<double, std::milli> ms_double = t2 - t1;

    std::cout << ms_int.count() << "ms\n";
    std::cout << ms_double.count() << "ms\n";
    return 0;
}

这将测量函数的持续时间long_operation.

可能的输出:

150ms
150.068ms

工作示例:https://godbolt.org/z/oe5cMd https://godbolt.org/z/oe5cMd

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

测量 C++ 中函数的执行时间 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 如何获得 OxyPlot 中的所有颜色?

    我有一个问题 我在 WPF C 中使用 OxyPlot 我需要将所有颜色设置为系列的 MarkerType 和 MarkerStroke 我怎样才能获得所有颜色 Green IndianRed 等是静态 OxyColors 类中的静态字段
  • 在 std::set 中使用运算符 != 作为运算符 < 是否安全?

    我有一个包含一些成员的结构 并且我有一个为其实现的运算符 在operator 的帮助下实现operator struct Data std string str1 std string str2 std string str3 std st
  • 为 iPhone 模拟器构建时保持 App 目录相同吗?

    我正在构建一个 iPhone 应用程序 我的应用程序在首次安装时将大量资源复制到应用程序的文档目录中 在开发应用程序时 我只需修改 iPhone 模拟器的应用程序文档目录中的文件 即可轻松测试内容 而无需重新构建应用程序 但是 当我重建应用
  • django:如何在 ModelForm 中访问当前请求用户?

    在我的 ModelForm 实现中 我想根据当前用户是否是超级用户来执行不同类型的验证检查 如何访问当前请求用户 如果您使用基于类的视图 CBV 则在表单构造函数中传递一个额外的参数 例如在get forms class or in for
  • 如何确定 UsbRequest.queue(..) 方法接收的字节长度?

    我在 Android 3 1 中遇到 UsbRequest 类的问题 这是我的代码 ByteBuffer buffer ByteBuffer allocate 4096 buffer order ByteOrder LITTLE ENDIA
  • 如何通过 python 更改 CSV 文件中的值?

    我需要能够查找并更改 CSV 库存文件中的值 我知道如何搜索一个值 但是当我尝试使用csv writer然后它返回一个错误 Traceback most recent call last File pbsrvfile ExamAccount
  • Android OpenGL ES 2.0:GL_FLOAT 纹理是否可以作为 COLOR 附件分配给 FBO?

    我想通过 glReadPixels 使用 GL FLOAT 纹理 获取值 我的 Android 设备支持 OES texture float 但是 附加GL FLOAT纹理时出现错误 在Android的OpenGL ES 2 0中 将GL
  • PLINQ 查询给出溢出异常

    我正在运行 PLINQ 查询 如下所示 ParallelQuery
  • 在特定任务中使用 NFC 启动 Activity

    我的应用程序包含许多活动 其中一项活动响应 NFC 意图过滤器以及标准意图 但是 该活动在其自己的任务中启动 而不是在与应用程序相同的任务中启动 当 NFC 意图启动时 应用程序不一定正在运行 但如果是 我希望该活动在同一任务中启动 以确保
  • pygame - 向下滚动页面

    简而言之 我的程序是一个联系人应用程序 这显然意味着一个人需要能够在应用程序中存储多个联系人 这反过来又意味着联系人最终将 离开 屏幕 所以我需要能够向下滚动页面 以便人们可以看到他们的所有联系人并与特定联系人进行交互 但是 我有点困惑 我
  • 子查询 where 子句中的未知列

    我的 INNER JOIN 子查询的 where 子句遇到问题 我收到未知的列错误M idMembre 我尝试使用表名而不是别名 但遇到了同样的问题 我还尝试从子查询中删除 WHERE 子句 并在子查询后的 ON 子句中添加此条件 但是 无
  • 当 iPhone 进入待机模式时,iPhone 应用程序会发生什么情况?

    我的应用程序使用 NSTimer 当 iPhone 进入待机模式 通过按下硬件按钮或通过空闲计时器 时 NSTimer 似乎不会触发 当我再次激活 iPhone 时 我的应用程序仍然在前台 当 iPhone 处于待机模式时 第三方应用程序会
  • 由于未捕获的异常“_HKObjectValidationFailureException”而终止应用程序

    我正在将血糖值保存到 iOS 中的 Health Kit 应用程序中 void viewDidLoad float bloodGlucose 20 float bloodGlucoseValue int bloodGlucose NSLog
  • SOAP-UI - 如何在参数内传递 xml

    在 SOAP UI 中 我向 Web 服务发出如下请求
  • 正则表达式量词加号和星号之间的区别

    我尝试从字符串中提取错误号 例如 Wrong parameters Error 1356 Pattern p Pattern compile d Matcher m p matcher myString m find System out
  • Android 上 imageView 的渲染圆角

    我有以下一段代码用于渲染带有圆角的 imageView public class RoundedCornerImageView extends ImageView private int rounded public RoundedCorn
  • Amazon RDS MySQL 实例执行速度非常慢

    我在Amazon EC2 新加坡区域 上发布了我的网站 并使用MySQL RDS实例进行数据存储 除了性能之外 一切都工作得很好 我看来 我的所有查询 尤其是 select 语句 执行速度非常慢 如果我在本地电脑上检查这个问题 它运行得很好
  • 关于python中switch的一些问题

    这是我在 StackOverflow 上的第一个问题 所以如果某些信息不存在或者我错过了一些重要的信息 请耐心等待我 但无论如何我会尽力 最近我开始用Python2 7编写代码 所以我不太擅长 在使用 PyGtk PyGObject Gla
  • Google 云存储 JavaScript 使用情况

    我正在尝试使用以下命令将图像上传到 Google Cloud Storage 上的存储桶中JSON API https cloud google com storage docs json api 使用 Javascript 示例 API
  • 测量 C++ 中函数的执行时间

    我想知道我的 C 程序中某个函数执行需要多长时间Linux 之后我想做一个速度对比 我看到了几个 time 函数 但最终从 boost 中得到了这个 时间 process user cpu clock captures user CPU t