Скрипт работает лучше при запуске через PyCharm, чем при запуске непосредственно в командной строке - PullRequest
2 голосов
/ 25 марта 2019

Тот же самый вопрос уже задавался здесь , но не получил ответов.

Я написал скрипт, выполнение которого занимает очень много времени, и использую модуль ( tqdm ), чтобы дать мне отзыв о его продвижении. При запуске в удаленной среде через PyCharm производительность сценария составляет от 800 до 1000 итераций в секунду, что дает приблизительное общее время выполнения где-то между 4 и 5 часами.

Проблемы возникают, когда я пытаюсь запустить скрипт через классическую командную строку Linux в той же удаленной среде. При тех же обстоятельствах, в одной и той же среде, с использованием той же команды, с той лишь разницей, что я набрал ее сам, вместо того, чтобы PyCharm выдал ее мне, производительность сценария падает до 200-300 итераций в секунду, что приводит к примерно 10 -16 часов работы.

В PyCharm окно конфигурации запуска для моего скрипта выглядит так: pycharm run config Как видите, использованный интерпретатор находится на моем сервере разработки в виртуальной среде, используемой всем проектом.
Мне пришлось скрыть имя и параметры скрипта, что может показаться вам неудобным, но я не думаю, что моя проблема связана с самим скриптом или его содержимым.

Чтобы запустить тот же скрипт через командную строку, вот что я делаю:

  • SSH к моему серверу
  • cd в папку моего проекта
  • активировать мою среду
  • export PYTHONPATH=$(pwd)
  • запустить тот же скрипт с теми же параметрами

... что на самом деле должно привести к тому же поведению, верно? Ну да, но не с той же скоростью. Это падение производительности на 70% происходит по причинам, которые я не могу понять, и которые, похоже, нигде не описаны в Интернете.

Я также пытался, в попытке идеально высмеивать то, что делает Пичарм:

  • копирование точного вывода команды PyCharm после запуска скрипта и вставка его в мой терминал (безрезультатно)
  • выдача export PYTHONUNBUFFERED=1 перед запуском скрипта, который, как я знал, ничего не изменит (не сделал)

Я схожу с ума по этому поводу. Это результат каких-то сомнительных махинаций PyCharm?
Любой ввод, связанный с тем, что делает PyCharm, который может даже удаленно ускорить некоторые аспекты выполнения скрипта Python, приветствуется!

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...