在嵌入式系统中运行Python的系统开销如何

发布于 2022-09-11 21:40:40 字数 614 浏览 14 评论 0

芯片环境是imx 6UL,ARM Cortex-A7,处理器运行速度528 MHz,跑linux系统
原先我们是移植CAN festival 协议栈实现CAN通信,跑在STM32上,现在上了系统而且BSP还是支持Python的,有个同事说可以直接用Python的库,之前没听过,一查还真有

clipboard.png

之前用过Python写过一些简单的测试脚本,库的功能确实强大,不过就是不太了解,系统开销这块会不会增大?

比如原先我用C在linux上写协议栈,然后现在用Python写协议栈,根据高级语言开销大的原理,Python势必比C的开销大,但是到底大多少,这个有哪位大神了解的吗?

虽然我可以两个都跑起来,然后看进程的CPU和内存,但是这个方法感觉是从用户角度,有没有从编译角度解释的呢?
各位大神,如果有了解,麻烦回复一下,哪怕提点一两句方法也可以啦,非常感谢!

论坛逛下来的结果,Python运行速度慢,不太适合写协议栈,协议栈对通信速率要求很高,所以用C写的多,而Python多用于实现强大功能,嵌入式的硬件往往性能不高,Python跑应用实在是吃不住,请我我的理解对吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白鸥掠海 2022-09-18 21:40:40

考虑一下Rtt-micropython


修改下答案:

micropython并非要和rtt或者stm32绑定在一起micropython官网, 它是原始的项目。

根据高级语言开销大的原理,Python势必比C的开销大,但是到底大多少,这个有哪位大神了解的吗

C说:俺也是高级语言这一类啊。

虽然我可以两个都跑起来,然后看进程的CPU和内存,但是这个方法感觉是从用户角度,有没有从编译角度解释的呢?

用户角度就够了。或者说用户角度的差异是由两种语言的运行模型决定的,一个是翻译成硬件指令,一个是用虚拟机逐个解析。

另外,抛开应用本身谈性能本身就是耍流氓..

Python运行速度慢,不太适合写协议栈,协议栈对通信速率要求很高,所以用C写的多

你说的协议栈是INET协议栈吗。协议栈就是个干活的,对通信速率要求高的只能是应用,这个锅还轮不到协议栈背...还是要看你的应用啊....算法更重要。

"Make things working first. Then optimize"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文