发布选择:C++,开发选择:Python。

由于工作性质,教学过程中适当使用Python演示是可行的,但是一直致力于推介C++。

使用C++最大问题,学生C++基础比较薄弱。


discourse.ros.org/t/high-cpu-load-for-simple-python-nodes/28324


Marco:
I have been using in a project various nodes, some of which in C++, and some in Python. I noticed a huge difference, even for basic nodes that just do some publishing, in CPU usage between Python and C++. Python CPU usage is generally several times higher than a C++ node doing the same.
This happens for publisher nodes, as well as for server nodes, even in their idle state when no services or actions are actually requested, which I find extremely strange…

Did anyone notice similar issues? Does anyone have any recommendations for reducing the CPU usage of Python nodes?
The issue has been observed so far in ROS2

马可:
我在一个项目中使用了各种节点,其中一些在C++中,一些在Python中。我注意到Python和C++之间的CPU使用情况存在巨大差异,即使对于只做一些发布的基本节点也是如此。Python的CPU使用率通常比C++节点高几倍。
这种情况发生在发布者节点和服务器节点上,即使在它们的空闲状态下,实际上没有请求任何服务或操作,我觉得这非常奇怪…
有人注意到类似的问题吗?有人对减少Python节点的CPU使用有什么建议吗?
到目前为止,在不同的CPU架构(amd和arm)下,在ROS2银河系统中已经观察到了这个问题


aposhian:
I have observed this as well. For this reason, I only use rclpy for development, and never for production nodes.

阿波西安语:
我也观察到了这一点。因此,我只将rcpy用于开发,而从不用于生产节点。


matthews-jca:
Not just CPU overhead when spinning, but memory footprint as well. Mirroring Aposhian we usually prototype in python and then convert to C++ for release

马修斯jca:
不仅是旋转时的CPU开销,还包括内存占用。镜像Aposhian我们通常在python中创建原型,然后转换为C++发布


MoffKalast:
At the risk of sounding callous, you guys do realize you’re comparing a compiled language known for its memory efficiency and speed to one that’s none of those three things. The virtual machine will add overhead, so will the interpreter, and of course the language itself needs more processor cycles to run, given dynamic typing and other high level abstractions. Even if you’re not receiving anything there’s still a thread in the background that needs to periodically poll for new socket data I presume. Unlike C++ which will strip out all unused code at compile time, Python also needs to keep all imported modules loaded into memory.

But none of us are using Python because it’s fast or memory efficient, we’re using it because it cuts down development time by an order of magnitude

莫夫卡拉斯特:
冒着听起来冷酷无情的风险,你们确实意识到,你们正在将一种以内存效率和速度著称的编译语言与这三种语言相比。虚拟机会增加开销,解释器也会增加开销。当然,考虑到动态类型和其他高级抽象,语言本身需要更多的处理器周期来运行。即使您没有收到任何消息,我想后台仍有一个线程需要定期轮询新的套接字数据。与C++不同,Python在编译时会删除所有未使用的代码,Python还需要将所有导入的模块加载到内存中。
但我们没有人使用Python是因为它速度快或内存效率高,我们使用它是因为它将开发时间缩短了一个数量级


ROS2机器人-C++和Python怎么选相关推荐

  1. ROS2机器人编程简述humble-第三章-COMPUTATION GRAPH .2

    ROS2机器人编程简述humble-第三章-PERCEPTION AND ACTUATION MODELS .1 避开障碍物计算图如何呢? 该应用程序的计算图非常简单:订阅激光主题的节点向机器人发布速 ...

  2. ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2

    参考链接: https://github.com/fmrico/book_ros2 封面: 简介: ROS2机器人编程简明教程 使用ROS2进行机器人编程的简明介绍为读者提供了通过编程实现机器人所需的 ...

  3. ROS2机器人f1tenth之CLI工具基础

    案例适用于ROS2如下三个版本: humble galactic foxy 适用于win/linux/macos. 为何选择f1tenth,延续性,之前使用f1tenth的ros1进行案例讲解. 具体 ...

  4. 【ROS2机器人入门到实战】

    ROS2机器人入门到实战教程(鱼香ROS) 写在前面 当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取 教程配套机器人开发平台: ...

  5. python哪本好-刚开始学 Python,选哪本书比较好?

    原标题:刚开始学 Python,选哪本书比较好? 我刚学习的时候,为了省点钱在网上找了些教程,各处扒了一些免费的电子书.虽然说磕磕碰碰走了过来,但回过头来看,一开始如果能找到一本好的入门书,将会省掉很 ...

  6. 闲聊机器人实例四:python实现小姜机器人(检索式chatbot_sentence_vec_by_bert_bert句向量)

    bert构建生成句向量,再计算相似度,匹配问答库中的标准问题.为什么使用bert倒数第二层输出构建句向量. 小姜机器人.python.tensorflow.chatbot.dialog.bert中文短 ...

  7. python复杂网络点图可视化_数据分析:R与Python怎么选?

    作者介绍 知春里@伟仔 不知名数据科学家. 持续写<数据分析>和<数据产品>的系列文章,欢迎关注. 01 选R还是Python? "球鞋是买阿迪还是买耐克?" ...

  8. ROS2机器人操作系统简介2021英文字幕版本

    ROS2机器人操作系统简介2021英文字幕版本 文档推荐: docs.ros.org/ ROS2 Galactic ROS1 Noetic 只推荐官方文档和英文课程,比较成熟,bug少,能节约大量时间 ...

  9. coc机器人苹果_优必选科技Jimu机器人正式入驻Apple Store 零售店

    "拼搭无限,动你所想"-- Jimu机器人,一款可以自由搭建.编程和分享的全新机器人产品,首次瞩目登陆 Apple Store 零售店. (中国,2016年7月12日)优必选科技( ...

最新文章

  1. 微信网页JSDK接口-wx.chooseImage问题
  2. 深圳有哪些牛批的互联网公司?
  3. 资深专家深度剖析Kubernetes API Server第1章(共3章)
  4. ML 04、模型评估与模型选择
  5. dict()与{},list()与[]性能对比
  6. PDF阅读器Foxit Reader 2.2简体中文版
  7. SAP Cloud for Customer里新的Lead UI对Mashup集成的支持原理
  8. 实例分享--告诉你如何使用语音和自然语言控制智能家居
  9. [react] 写一个react的高阶组件并说明你对高阶组件的理解
  10. hsrp 切换_HSRP、VRRP、GLBP | 网络工程师之网关高可用、冗余
  11. Python的内建模块itertools
  12. 通过伙伴系统申请内核内存的函数有哪些?
  13. 使用VS2012遇到的问题
  14. 车辆撞人有全险但是是全责,车主不愿出钱垫付医药费,该怎么办?
  15. 苹果mac视频编辑和制作软件:Premiere Pro
  16. Android - UI
  17. 【青少年编程】【Scratch】03 声音模块
  18. 利用python修改小米运动数据,整个朋友圈都感觉太夸张了
  19. 化工过程机械类毕业论文文献有哪些?
  20. r语言8c多字节字符串有错,R语言答疑:txt文件无法被R正确读入

热门文章

  1. 我的2012,一个2b青年的表白
  2. 物体抓取位姿估計算法綜述_NO. 1 物体位姿估计 机器人抓取
  3. 服务发现-注册中心概述
  4. 100集华为HCIE安全培训视频教材整理 | PKI核心部分CA
  5. 关于WPF(二)XAML
  6. Fabric学习笔记——一、环境搭建(小白入门)
  7. BaiduFaceApi.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
  8. 笔记连载 | Day6 FPGA三种建模方式区别及Verilog语法基础篇
  9. S4 MM BP配置
  10. 衢州服务器维修,衢州市服务器费用