ros::Rate loop_rate(10); loop_rate.sleep(); 在程序中是休眠到一定时间,并不占用CPU时间

这篇具有很好参考价值的文章主要介绍了ros::Rate loop_rate(10); loop_rate.sleep(); 在程序中是休眠到一定时间,并不占用CPU时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如题

ros::Rate loop_rate(10); loop_rate.sleep();

在ROS C++ 编写订阅者等功能包时,会用到以上两个函数

经过本人测试和查询,sleep()函数并不占用CPU时间,故如果想用定时器来记录程序执行时间,并不会把休眠的时间加进去(休眠其实就是不占用CPU时间的意思).

实际上,执行sleep()函数,只会占用CPU时间调用一条语句的时间.

 

如果想记录程序的总的运行时间(而不是占用CPU的时间),可以通过C 库函数 - time()来获取当前时间(C 库函数 time_t time(time_t *seconds) 返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间,以秒为单位。如果 seconds 不为空,则返回值也存储在变量 seconds 中)

用C 库函数 double difftime(time_t time1, time_t time2) 返回 time1 和 time2 之间相差的秒数 (time1 - time2)。这两个时间是在日历时间中指定的,表示了自纪元 Epoch(协调世界时 UTC:1970-01-01 00:00:00)起经过的时间。

 文章来源地址https://www.toymoban.com/news/detail-434595.html

time_t start_t, end_t; double diff_t;

 time(&start_t); loop_rate.sleep();  time(&end_t);  diff_t = difftime(end_t, start_t);

cout << "diff_t = " << diff_t <<endl;

注意,应当把loop_rate(10) 改为loop_rate(1),这样就可以看到diff_t  = 1的输出

 

 

到了这里,关于ros::Rate loop_rate(10); loop_rate.sleep(); 在程序中是休眠到一定时间,并不占用CPU时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习_Learning Rate Scheduling

    我们在训练模型时学习率的设置非常重要。 学习率的大小很重要。如果它太大,优化就会发散,如果它太小,训练时间太长,否则我们最终会得到次优的结果。 其次,衰变率同样重要。如果学习率仍然很大,我们可能会简单地在最小值附近反弹,从而无法达到最优 我们可以

    2023年04月08日
    浏览(60)
  • golang官方限流器rate包实践

    日常开发中,对于某些接口有请求频率的限制。比如登录的接口、发送短信的接口、秒杀商品的接口等等。 官方的 golang.org/x/time/rate 包中实现了令牌桶的算法。 封装限流器可以将ip、手机号这种的作为限流器组的标识。 接下来就是实例化限流器和获取令牌函数的实现 packag

    2024年02月13日
    浏览(38)
  • 恒虚警率(Constant False Alarm Rate)检测

    前言:雷达信号处理的一般流程:ADC数据——1D-FFT——2D-FFT——CFAR检测——测距、测速、测角。本篇笔记主要记录CFAR的原理和代码实现。 一、CFAR原理 1、一维CFAR (1)原理:仅对距离维或多普勒维做CFAR,检测单元的左右两侧均有设定好数量的保护单元和参考单元。如果是

    2024年02月15日
    浏览(42)
  • Prometheus监控实战之rate与irate的区别

    irate和rate都会用于计算某个指标在一定时间间隔内的变化速率。但是它们的计算方法有所不同:irate取的是在指定时间范围内的最近两个数据点来算速率,而rate会取指定时间范围内所有数据点,算出一组速率,然后取平均值作为结果。 所以官网文档说:irate适合快速变化的计

    2024年03月11日
    浏览(52)
  • 【博客669】prometheus rate()选择range范围的最佳实践

    我们使用rate来计算counter的速率,那么rate的range范围应该选择哪一个?有没有固定的答案呢?30s,1m? 答案:没有,要根据你的scrap_interval来决定的 选择范围的一般规则是至少应为刮擦间隔的 4 倍。这是为了允许各种竞争条件,并对失败的刮擦具有弹性。 剖析: 假设您有一个

    2024年02月10日
    浏览(40)
  • [ChatGPT] 429 you are being rate limited

    当您反复调用 OpenAI API 时,您可能会遇到错误消息 429:’Too Many Requests‘ 或 RateLimitError。 这些错误消息来自超出 API 的速率限制。 要查看用于限制并行请求以避免速率限制错误的示例脚本,请参阅 api_request_parallel_processor.py 速率限制是 API 的常见做法,它们的实施有几个不同

    2023年04月11日
    浏览(27)
  • STM32延迟(休眠)函数delay/sleep

    参考 MSP432(Keil5)——3.delay延时驱动_keil5delay函数_大写的小写字母的博客-CSDN博客 亲手测试过, 好用。用while太愚蠢,而且不好控制。 下载链接 https://download.csdn.net/download/quantum7/87982408 delay.h delay.c

    2024年02月12日
    浏览(35)
  • 【深度学习】学习率预热和学习率衰减 (learning rate warmup & decay)

    在深度学习中学习率这个超参数,在选取和调整都是有一定策略的,俗称炼丹。有时我们遇到 loss 变成 NaN 的情况大多数是由于学习率选择不当引起的。 神经网络在刚开始训练的时候模型的权重(weights)是随机初始化的,选择一个较大的学习率,可能带来模型的不稳定(振荡),因

    2023年04月25日
    浏览(33)
  • 【李宏毅机器学习·学习笔记】Tips for Training: Adaptive Learning Rate

    本节课主要介绍了Adaptive Learning Rate的基本思想和方法。通过使用Adaptive Learning Rate的策略,在训练深度神经网络时程序能实现在不同参数、不同iteration中,学习率不同。 本节课涉及到的 算法或策略 有:Adgrad、RMSProp、Adam、Learning Rate Decay、Warm Up。 本节课 参考的资料 有: MI

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包