Python的性能值得吗?
我正在考虑使用PyFuzzy(Python)或FFLL(C++)库来实现一个模糊逻辑控制器。
我更倾向于使用Python,但不确定在我将要使用的嵌入式环境中,它的性能是否能接受(这个环境可能是ARM或嵌入式x86处理器,内存大约是64MB)。
我最关心的是响应时间要尽可能快(理想情况下更新频率要超过5Hz,至少要达到2Hz)。这个系统需要从多个(大概5个)传感器通过RS232端口读取数据,并根据模糊评估的结果提供2到3个输出。
我应该担心Python在这个任务上会太慢吗?
6 个回答
5
先让它能正常运行,然后再让它运行得更快。
12
Python在处理大量非字符串数据时速度很慢。有些操作的速度可能比C/C++慢1000倍,所以在用Python写那些对时间要求很高的算法之前,你最好先了解一下这个问题,并做一些必要的性能测试。
不过,你可以通过用C/C++代码扩展Python的模块,这样在需要快速处理的地方就能提高速度,同时又可以用Python来写主要的代码。
35
一般来说,除非你真的遇到了性能问题,否则不需要过于担心性能。因为我们不了解你的应用程序的具体情况,所以无法判断如果用Python来实现,它的表现会如何。而且你还没有实现它,所以你也无法知道。
首先,先实现你最熟悉、能最快完成的版本。然后进行性能测试。如果发现速度太慢,你可以按照以下顺序采取三种措施:
- 首先,优化你的Python代码。
- 如果这样还不够,可以把最关键的性能函数用C/C++编写,然后在Python代码中调用它。
- 最后,如果你真的需要极致的性能,可能需要把整个程序重写成C++。不过这样的话,你至少会有一个在Python中工作的原型,这样你对如何实现会有更清晰的想法。你会知道哪些坑要避免,而且你会有一个已经正确的实现来进行测试和比较结果。