python - Python 的性能是否物有所值?

标签 python c embedded fuzzy-logic

我正在研究基于 PyFuzzy (Python) 或 FFLL (C++) 库实现模糊逻辑 Controller 。

我更喜欢使用 python,但不确定性能是否可以在它将工作的嵌入式环境中接受(ARM 或嵌入式 x86 proc 都是 ~64Mbs RAM)。

主要关注的是响应时间尽可能快(5hz+ 的更新率是理想的 >2Hz 是必需的)。该系统将从一个 RS232 端口的多个(可能是 5 个)传感器读取数据,并根据模糊评估的结果提供 2/3 的输出。

我是否应该担心 Python 对于这项任务来说太慢了?

最佳答案

一般来说,在您真正看到它成为一个问题之前,您不应该过度关注性能。由于我们不知道您的应用程序的详细信息,因此我们无法说明如果用 Python 实现它会如何执行。由于您还没有实现它,所以您也不能。

首先实现您最熟悉且实现速度最快的版本。然后对其进行基准测试。 如果速度太慢,您有三个选项,应该按顺序执行:

  • 首先,优化您的 Python 代码
  • 如果这还不够,请用 C/C++ 编写对性能最关键的函数,然后从您的 Python 代码中调用它
  • 最后,如果您真的需要顶级性能,您可能不得不用 C++ 重写整个东西。但是至少你会有一个 Python 的工作原型(prototype),你会对它应该如何实现有一个更清晰的想法。您将知道要避免哪些陷阱,并且您将拥有一个已经正确的实现来测试和比较结果。

关于python - Python 的性能是否物有所值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498155/

相关文章:

python - 如何比较 tensorflow 中的张量?

c - 如何利用 Format-String 漏洞?

ruby-on-rails - 如何在 Ruby 中通过互联网控制没有静态 IP 的嵌入式设备?

python - 在ElasticSearch中如何检查字段是否存在,然后应仅返回 bool 值(True或False)

Python,将迭代函数变成递归函数

c - main 之前的段错误

c - C中 volatile 非静态局部变量的原因

assembly - 学习 PIC 单片机的汇编语言的最佳资源是什么

python - 如何获取本地安装的 Python 模块的列表?

c - 首先计算哪个?