Зависимость быстродействия кода от используемых средств Python
Ясно, что быстродействие зависит от правильно выбранного алгоритма. Но также очевидно, что быстродействие должно зависеть и от выбранных средств языка (что в случае интерпретируемого Python приобретает особую важность), а неудачный выбор снизит его даже при правильно выбранном алгоритме.
Вопрос: есть ли способ (кроме имитации) для определения того, какие средства Python быстрее, а какие медленнее? Например, какие библиотеки написаны на С ("быстрые"), а какие - на Python ("не-такие-быстрые")? Или (условно) одинаковая ли скорость поиска или сортировки в разных типах? И т.д.
Это могут быть как какие-то встроенные средства, так и одна чудо-страница в документации.
Цель: практическая - писать быстро работающие программы. Теоретические сравнения экзотических комбинаций не прошу.
Ответы (1 шт):
Суммирую в ответе основное, что мне посоветовали в комментариях к вопросу:
"для больших числовых массивов обычно лучше использовать Numpy, он написан на C++ и оптимизирован для работы с такими данными. Так то вообще большинство библиотек для питона пишется на C++ либо современной версии Fortran и затачивается под максимальное быстродействие. А вот встроенные типы питона сделаны максимально гибкими и поэтому они обычно довольно медленные в сравнении со специальными библиотеками."
Начать стоит с PythonSpeed PerformanceTips