Скорость расширений Python в C против C

Модули расширения Python, написанные на C, быстрее, чем эквивалентные программы, написанные на чистом Python. Как эти модули расширения сравниваются (по скорости) с программами, написанными на чистом C? Программы, написанные на чистом C, даже быстрее, чем эквивалентный модуль расширения Python?

2 Solutions collect form web for “Скорость расширений Python в C против C”

Как эти модули расширения сравниваются (по скорости) с программами, написанными на чистом C?

Они немного медленнее из-за перевода между структурами данных Python -> C типов. Невзирая на этот перевод, фактический код C работает с той же скоростью, что и обычная функция C.

Программы, написанные на чистом C, даже быстрее, чем эквивалентный модуль расширения Python?

Программы C (написанные полностью на C) могут быть быстрее программ Python с использованием модулей расширения C. Если программа C и модуль расширения написаны с одинаковым уровнем сложности, умение кодера, алгоритмическая сложность и т. Д., Программа C победит каждый раз. Однако, если вы не являетесь C-гуру и конкурируете с высоко оптимизированным расширением Python C, Python может быть быстрее.

Будучи расширением Python, не влияет на скорость выполнения фрагмента кода, за исключением того, что Python, вызывающий его, медленнее, чем эквивалент C, и компилятор менее способен агрессивно разворачивать и встроить код, который пересекает C / Граница Питона.

То есть, если вы просто используете код Python для вызова функции C, а затем выполняете всю свою работу в этой функции, единственной разницей в производительности будет количество времени, которое вы потратили, прежде чем попасть на сторону C. С этого момента он является родным C.

  • Как установить Selenium для Python и C #
  • Есть ли бесплатный переводчик Python to C?
  • Передайте объект типа (класс, а не экземпляр) из python в c ++
  • python bindings, как это работает?
  • общаться между python и C ++
  • Как использовать float ** в Python с Swig?
  • Производительность Boost Python
  • Ошибка сегментации при использовании boost :: numpy :: ndarray
  • Python - лучший язык программирования в мире.