Модули расширения Python, написанные на C, быстрее, чем эквивалентные программы, написанные на чистом Python. Как эти модули расширения сравниваются (по скорости) с программами, написанными на чистом C? Программы, написанные на чистом C, даже быстрее, чем эквивалентный модуль расширения Python?Скорость расширений 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.
То есть, если вы просто используете код Python для вызова функции C, а затем выполняете всю свою работу в этой функции, единственной разницей в производительности будет количество времени, которое вы потратили , до, попадая в сторона С вещей. С этого момента, она является родной C.
- 1. Нарезка в C по сравнению с Python
- 2. Скорость функций процедуры по сравнению с подпрограммами
- 3. Профилирование расширений python C
- 4. Вызов расширений C++ в Python
- 5. C++/CLI: Преимущества по сравнению с C#
- 6. Неуправляемый C# по сравнению с C++
- 7. C# дженериков по сравнению с шаблонами C++
- 8. Скорость - вложение python в C++ или расширение python с C++
- 9. C/C++ по сравнению с Java/C# в высокопроизводительных приложениях
- 10. C# время компиляции для больших проектов (по сравнению с C++)
- 11. Скорость обработки файлов python 3.3 по сравнению с fortran 77
- 12. Поиск максимального значения в Python по сравнению с C++
- 13. Скорость синхронизации по сравнению с обычным
- 14. Строители в Java по сравнению с C++?
- 15. Деструкторы в C++ (по сравнению с java)
- 16. Переопределение по сравнению с переопределением в C++
- 17. Насколько медленнее wxWidget, написанный на Python по сравнению с C++?
- 18. Конструкторы и деструкторы в C++ по сравнению с C#
- 19. struct and typedef в C по сравнению с C++
- 20. Библиотека расширений в C#
- 21. Концепция собственности C++ по сравнению с .net
- 22. C++ - структура по сравнению с классом
- 23. Создание объекта Java по сравнению с C#
- 24. C#, используя ожидание по сравнению с результатом
- 25. Java generics по сравнению с шаблонами C++
- 26. Потоки C++ по сравнению с потоками .NET?
- 27. C++ вектор в/[] скорость оператора
- 28. Свойства F # по сравнению с свойствами C#
- 29. C application libmysqlclient по сравнению с ODBC
- 30. По сравнению с Object in C#
Возможно, вам стоит рассмотреть Cython, если вы думаете о написании расширений/модулей/... – hochl
В C против C? Какие? –
@hochl - Разве Китон не просто обычный Python? В отличие от Jython или IronPython? – mau5padd