@Popou

Использование dll в python как повлияет на производительность?

Я бы хотел что бы некоторые расчеты ушли на dll файл для (предположительно)"ускорение" работы. Будет ли это быстрее или результат не измениться если я напишу обычный python модуль? Я просто искал ответы в гугле но так и не нашел. Заранее спасибо !
  • Вопрос задан
  • 100 просмотров
Решения вопроса 2
DevMan
@DevMan Куратор тега Python
теоретически будет быстрее.
практически зависит от конкретной реализации.
Ответ написан
GennadyS
@GennadyS
Программист, философ
Вопрос старый как мир. Я бы сказал так, без острой необходимости не усложняйте себе работу — пока время дороже, чем расходы приложения. И занимайтесь переносом в бинарные библиотеки лишь тогда, когда твердо будете понимать такую необходимость.

И наоборот, если ищете ответ в Google, значит не осознаете проблемы. Но общего ответа и не найдете, ведь это аналитическая задача для каждого конкретного случая. Тогда как чаще всего просадки в работе алгоритмов решаются оптимизацией. Так, был случай работы с огромными XML документами, сначала мелькнула мысль о переносе на C++ или поиске бинарной-XML библиотеки, однако профайлер показал, что узким местом являются 2 списка, никак не библиотека XML на чистом Python. Списки пришлось разбить, убрать поиск по ним и т.д., и сэкономил 80% времени в работе алгоритма.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Senior .NET developer
Фиг его знает, библиотеки обычно сильно оптимизированны если вы отдаёте мало а считается много то выигрыш существенный. Почему бы не попробовать тестовый прогон? Или профайлерм для определения узких мест?
Ответ написан
Ternick
@Ternick
Сомнительное удовольствие так "ускорять" работу программы. Если нужна скорость, то нужно использовать низкоуровневые языки, чем ниже, тем шустрее. На мой взгляд особо ничего не изменится по скорости.
Если хотите ускорить процесс, можно использовать потоки, асинхронность, написать приложение на C-шных языках программирования и передовать параметры нужные туда и запускать, а затем через socket, именованный канал или pipe получать результат и отображать в питоне.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы