【问题标题】:Fastest way to call a C function from Python从 Python 调用 C 函数的最快方法
【发布时间】:2016-03-31 13:39:58
【问题描述】:

性能确实是这里的关键。我有一些用于数字任务的 C 函数,双输入和双输出。我正在寻找一种高效的方法来调用这些函数并检索结果。最快的解决方案是什么?

存在许多解决方案,例如 ctypes、swig 等。其中一些工具,例如 swig,多年来已经显着发展,因此更新的信息可能会有所帮助。迄今为止,就性能而言,从 Python 脚本调用现有 C 代码的最佳解决方案是什么?

[编辑] 这个问题与question 相关但不同。如上所述,我正在寻找更新的信息,而该帖子的日期为 2008 年。此外,该帖子是关于节省开发人员时间的最快方法,而不是我在这里要求的应用程序性能。

【问题讨论】:

  • 谢谢。我相信那个帖子是 2008 年的。此外,该帖子是关于节省开发人员时间的最快方法,而不是针对应用程序性能。
  • 通过 ctypes 调用 C lib 函数非常快。从 C 双精度中构建 Python 浮点数有点慢,所以将中间结果保留为 C 形式。
  • @zell:最快的方法是使用一些原始的原语,这在 2008 年就已经存在了。
  • @PM 2Ring。谢谢。你们cmets很有帮助。如何节省在 C double 和 Python double 之间转换的时间?

标签: python c performance


【解决方案1】:

我会考虑writing a C extension module

这样,您可以将最关键的部分保留在 C 中,您可以让编译器尽可能优化您的代码,并且可以避免将某些值转换为 Python 对象。

Cython 是不使用 C 编写 C 扩展的好方法。

【讨论】:

    猜你喜欢
    • 2011-05-28
    • 1970-01-01
    • 2019-05-12
    • 2011-12-03
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    相关资源
    最近更新 更多