Por que o -v para o modo detalhado nos comandos torna mais lento?

1

Eu estava executando um script e medindo o tempo que ele fez, descobri que usar o -v em alguns comandos mv ficou muito mais lento (todas as saídas são redirecionadas para um arquivo).

Então, por que o -v (modo detalhado) faz com que a execução de um comando o torne mais lento, por exemplo:

mv file.txt newname.txt mais rápido que mv -v file.txt newname.txt ao lidar com milhões de arquivos?

    
por Kingofkech 17.10.2017 / 13:15

2 respostas

2

Quando um programa é executado toda vez que ele imprime no arquivo, ele deve se comunicar com o kernel usando IPC. O redirecionamento exige isso e, em seguida, o sistema de arquivos deve realmente gravar as alterações que são armazenadas em buffer. Isso interrompe o agendamento do tempo de execução dos programas e deve esperar um tempo comparativamente longo para o buffer e, em seguida, simplesmente fazendo o que ele estava fazendo, a maioria dos quais provavelmente não foi trancada. Este é, evidentemente, apenas um fenómeno muito geral e seria aplicado de maneira totalmente diferente de comando para comando. No entanto, deve ser verdade que os comandos que seriam IOs bloqueados devem ser menos prováveis de serem diferentes quando executados com sinalizadores verbosos.

    
por 17.10.2017 / 15:34
2

Porque ser verboso significa fazer mais. E fazer mais demora mais do que fazer menos.

    
por 17.10.2017 / 14:17

Tags