2015-12-25 4 views
1

Производительность - это действительно ключ. У меня есть некоторые функции C для числовых задач, двойного ввода и двойного вывода. Я ищу очень эффективный способ вызова этих функций и получения результатов. Что было бы самым быстрым решением?Самый быстрый способ вызова функции C из Python

Многие решения существуют, например, ctypes, swig и т. Д. Некоторые из этих инструментов, например, swig, значительно изменились за эти годы, и поэтому обновленная информация может быть полезна. На сегодняшний день, с точки зрения производительности, каково наилучшее решение для вызова существующего кода C из сценария Python?

[Изменить] Этот вопрос связан, но отличается от этого question. Как уже упоминалось выше, я ищу обновленную информацию, тогда как это сообщение датировано 2008 годом. Кроме того, этот пост - это самый быстрый способ сделать это, чтобы сохранить время разработчика, а также не для производительности приложения, как я прошу здесь.

+0

Возможный дубликат [Вызов C/C++ из Python?] (Http://stackoverflow.com/questions/145270/calling-cc-from -python) –

+0

Спасибо. Я считаю, что этот пост в 2008 году. Кроме того, этот пост - это самый быстрый способ сделать это, чтобы сохранить время разработчика, и не для производительности приложения. – zell

+0

Вызов функций C lib через ctypes довольно быстро. Построение Python поплавков из C удваивается немного медленнее, поэтому сохраняйте промежуточные результаты в форме C. –

ответ

2

Я бы рассмотрел writing a C extension module.

Таким образом, вы можете хранить наиболее важные части на C, вы можете как можно больше оптимизировать свой код, и вы можете избежать преобразования определенных значений в объекты Python.

Cython хороший способ для написания расширений C без использования C.

Смежные вопросы