2013-06-15 5 views
1

Это приложение, в котором я работаю (на основе графического интерфейса), имеет более десятка модулей. При запуске приложения и его использовании это конкретное действие (щелчок на ярлыке), на котором я получаю множество пустых отпечатков в stdout и из-за которых я подозреваю, что производительность приложения страдает. Теперь проблема в том, что я не могу точно выяснить, какой запрос печати вызывает это.Как точно определить, откуда выполняется печать

То, что я пытался до сих пор:

  • мульти-буфер ищет
  • прокомментировал заявления печати, которые я знаю, будут выполнены и не устанавливался тот, который я почти 100% уверен, что никогда не будет выполнен , период.

То, что я не пробовал:

  • PDB (времени)

Любая легкость хак (не слишком некрасивый), чтобы угловой эту печать заявление?

+0

by "pdb (занимает много времени)" Вы имеете в виду, что вы не хотите его изучать? – piokuc

+1

Получите отладчик и установите точку останова на метку. Затем, шаг за шагом, через то, что происходит –

+0

@piokuc, конечно, нет. Я знаю, как использовать его, но ленив использовать его для этого –

ответ

6

Замените sys.stdout файлоподобным, который вытолкнет трассировку при вызове метода write().

0

Везде, где вы вызываете свою процедуру печати, добавьте небольшой уникальный заголовок для распечатки (имя модуля + номер строки), чтобы определить, откуда была начата печать.

+0

, который работал бы, если бы только ты один работал над проектом. Во-вторых, это сильно помешало бы вашему stdout бесполезной информацией, которую вам не понадобилось бы большую часть времени. –

+0

@ hus787 Он пытается отлаживать, конечно, он не должен оставлять такие маркеры на производстве. –

Смежные вопросы