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

xixihaha
  • 27

芯片环境是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跑应用实在是吃不住,请我我的理解对吗?

回复
阅读 2.7k
1 个回答
187J3X1
  • 1.8k
✓ 已被采纳

考虑一下Rtt-micropython


修改下答案:

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

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

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

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

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

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

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

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

"Make things working first. Then optimize"

宣传栏