Является ли Python быстрее и легче, чем C++? [закрытый]
Я всегда думал, что преимущества Python-это читаемость кода и скорость разработки, но время и использование памяти были не так хороши, как у C++.
эта статистика поразило меня очень сильно.
что ваш опыт говорит вам об использовании времени и памяти Python vs C++?
8 ответов:
Я думаю, что Вы читаете эти статистические данные неправильно. Они показывают, что Python до примерно 400 раз медленнее чем C++ и за исключением одного случая, Python больше похож на свинью памяти. Когда дело доходит до исходного размера, Python выигрывает полностью.
мой опыт работы с Python показывает ту же определенную тенденцию, что Python находится на порядок между 10 и 100 раз медленнее, чем C++ при выполнении любого серьезного числа хруста. Есть много причин для этого, главная из них: а) Python интерпретируется, а C++ компилируется; б) Python не имеет примитивов, все, включая встроенные типы (int, float и т. д.) являются объектами; c) список Python может содержать объекты разного типа, поэтому каждая запись должна хранить дополнительные данные о своем типе. Все это серьезно затрудняет как время выполнения, так и потребление памяти.
Это не причина игнорировать Python, хотя. Много программного обеспечения не требует много времени или памяти даже с фактором замедления 100 раз. Стоимость разработки на Python, где выигрывает с простым и лаконичным стилем. Это улучшение стоимости разработки часто перевешивает стоимость дополнительных ресурсов процессора и памяти. Когда это не так, однако, то c++ выигрывает.
все самые медленные (>100x) использования Python на перестрелке-это научные операции, которые требуют высокого количества GFlop/S. Вы не должны использовать python для этих целей в любом случае. Правильный способ использования python-импортировать модуль, который выполняет эти вычисления, а затем пойти отдохнуть днем с семьей. что - это подходящие для Python способ :)
мой опыт такой же, как и бенчмарки. Python может быть медленным и использует больше памяти. Я пишу много, гораздо меньше кода, и он работает в первый раз с гораздо меньше отладки. Поскольку он управляет памятью для меня, мне не нужно делать никакого управления памятью, экономя часы преследования утечек ядра.
какой у тебя вопрос?
размер источника на самом деле не является разумной вещью для измерения. Например, следующий скрипт:
cat foobarнамного короче, чем его эквиваленты на Python или C++.
также: Psyco против C++.
Это все еще плохое сравнение, так как никто не будет делать тесты numbercrunchy, как правило, фокусируются на чистом Python. Лучше было бы сравнить производительность реалистичных приложений или C++ против NumPy, чтобы получить представление о том, будет ли ваша программа заметно медленнее.
проблема здесь заключается в том, что у вас есть два разных языка, которые решают две разные задачи... это похоже на сравнение C++ с ассемблером.
Python предназначен для быстрой разработки приложений и когда производительность является минимальный интерес.
C++ - это не для быстрой разработки приложений и наследует наследие скорости от C - для низкоуровневого программирования.
Я думаю, что эти статистические данные показывают, что Python намного медленнее и использует больше памяти для этих тестов - вы уверены, что читаете их правильно?
по моему опыту, который в основном связан с написанием сетевых и файловых систем, связанных с программами на Python, Python не значительно медленнее в любом случае, что имеет значение. Для такого рода работы ее преимущества перевешивают затраты.
Это та же проблема с управляемым и простым в использовании языком программирования, как всегда - они медленные (и иногда едят память).
Это языки для управления, а не для обработки. Если бы мне пришлось писать приложение для преобразования изображений и использовать Python, вся обработка могла бы быть написана на C++ и подключена к Python через привязки, а интерфейс и управление процессом были бы определенно Python.
Comments