Зависимость быстродействия кода от используемых средств Python

Ясно, что быстродействие зависит от правильно выбранного алгоритма. Но также очевидно, что быстродействие должно зависеть и от выбранных средств языка (что в случае интерпретируемого Python приобретает особую важность), а неудачный выбор снизит его даже при правильно выбранном алгоритме.

Вопрос: есть ли способ (кроме имитации) для определения того, какие средства Python быстрее, а какие медленнее? Например, какие библиотеки написаны на С ("быстрые"), а какие - на Python ("не-такие-быстрые")? Или (условно) одинаковая ли скорость поиска или сортировки в разных типах? И т.д.

Это могут быть как какие-то встроенные средства, так и одна чудо-страница в документации.

Цель: практическая - писать быстро работающие программы. Теоретические сравнения экзотических комбинаций не прошу.


Ответы (1 шт):

Автор решения: Сергей

Суммирую в ответе основное, что мне посоветовали в комментариях к вопросу:

  1. "для больших числовых массивов обычно лучше использовать Numpy, он написан на C++ и оптимизирован для работы с такими данными. Так то вообще большинство библиотек для питона пишется на C++ либо современной версии Fortran и затачивается под максимальное быстродействие. А вот встроенные типы питона сделаны максимально гибкими и поэтому они обычно довольно медленные в сравнении со специальными библиотеками."

  2. Начать стоит с PythonSpeed PerformanceTips

→ Ссылка