Массовые задержки в простом сценарии? - PullRequest
0 голосов
/ 02 мая 2020

Этот скрипт зацикливается, чтобы открыть файл temp.rtf. Сценарий автоматически останавливается, пока текущий экземпляр файла не будет закрыт. Я получаю от 0 до 30 секунд задержки, прежде чем откроется новое окно . Я также заметил это при использовании cmd с subprocess.run в python. Может кто-нибудь объяснить, что происходит? Это полностью нарушает python ..

import sys, subprocess

def redir(tag):
    if str(tag)=='journal':
        subprocess.run("temp.rtf", shell=True)

while __name__=="__main__":
    redir('journal')

Аргумент для redir (последняя строка) на самом деле argv, но это должно работать так же.

if __name__=="__main__":
    while True:
        redir('journal')

^ дает такую ​​же задержку

* Используя windows 10, диспетчер задач говорит, что максимальная загрузка процессора составляет 7%, больше ничего.

Ввод кода в cmd не дает задержки при открытии файла, но такая же большая задержка проявляется в cmd * 1017. * не закрывается на случайное количество времени.

1 Ответ

0 голосов
/ 02 мая 2020

В вашей оболочке введите команду, чтобы открыть тот же файл. Запустите этот простой тест 6 раз: какова задержка при запуске каждого запуска?

Вы не указываете ни операционную систему, ни приложение, ни загрузку системы (другие процессы runnimg, загрузка процессора, загрузка памяти).


Последний комментарий автора является значительным:

Cmd.exe / C командная строка

Каждый раз, когда новый Командный процессор запущен, он выполняет перед командной строкой другие программы (записи автозапуска).

Вы можете использовать переключатель / D перед / C

/ D Игнорировать команды автозапуска реестра

Ref. https://ss64.com/nt/cmd.html

Для просмотра записей автозапуска вы можете использовать автозапуск от sysinternals: https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns


Если этот переключатель не ' Для работы я предлагаю вам посмотреть другие бесплатные инструменты на sysinternals, они могут помочь вам найти подозреваемых и узкие места.

Например, проводник процесса: https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

...