Por que usar a opção / mt no robocopy faz com que ele pause antes de iniciar?

1

Hoje, aprendi que você pode usar a chave / mt com robocopy para acelerar a transferência de arquivos. Eu tentei algumas opções diferentes para / mt: # , incluindo 1, 8, 17, 30 e 32. Descobri que 8 (o padrão) parecia ser o mais rápido por qualquer motivo.

Acredito que / mt: 1 é o mesmo que não usar / mt . Mas quando não uso / mt , a transferência de arquivos começa imediatamente e consigo ver a rolagem de texto instantaneamente. Se eu usar a opção / mt, se eu colocar um número depois ou não, e qualquer número que eu usar, robocopy será chamado e exibirá a instrução robocopy no arquivo em lotes por talvez 5-10 segundos e, em seguida, executará (é quando finalmente vejo o texto passando para indicar uma transferência de arquivos).

Inicialmente, pensei que poderia ser que, usando a opção / mt, o arquivo de lote fosse interrompido por alguns segundos enquanto aguardava algum serviço multi-thread ou algo assim. Mas eu tentei / mt: 1, que deve ser o mesmo que não usá-lo, e ele trava como quando eu especificar qualquer outro número. A única vez que inicia a transferência de arquivos imediatamente é quando a opção / mt não é usada.

Obviamente, estou usando o / mt para tornar o script mais rápido. Leva apenas cerca de 20 a 30 segundos, dependendo de se / mt é usado e qual número eu uso, então cada segundo conta para fazer isso ir mais rápido. Como posso me livrar do atraso causado pelo uso de / mt? Pressionar espaço ou ENTER não faz nada.

Aqui está o que está sendo usado:

robocopy "H:\LOS\DefaultCitrix\ChromeCitrix" "%userprofile%\Documents\ChromeCitrix" /e /w:1 /r:4 /mt:8
    
por InterLinked 31.08.2017 / 00:56

1 resposta

1

Geralmente, quando algo é multithreaded, uma parte do trabalho é entregue a cada thread. Se o aplicativo quiser mostrar o progresso, ele precisará coletar o status de cada thread e mostrá-lo a você. Quanto mais refinado o detalhe, mais complexo o processo, e realmente não faz nada de bom para você em termos de velocidade, para fazer toda aquela comunicação interposta.

Em um único aplicativo encadeado, por outro lado, o trabalho pode ser descartado no console sempre que for necessário.

Para simplificar, os encadeamentos provavelmente só retornarão à interface do usuário quando terminarem um bloco de trabalho.

    
por 12.10.2018 / 20:42

Tags