Por que a abertura de vários arquivos está demorando tanto?

1

Recentemente, fiz a seguinte pergunta sobre SO :

Eu tenho uma pasta foo com milhares .html de arquivos de aproximadamente 300 Kb cada.

Aqui está o que eu faço para abri-los:

 import os
 import time

 folder_name = 'foo'
 for file_name in os.listdir(folder_name):
     t = time.time()
     with open(os.path.join(folder_name, file_name)) as f:
         print(time.time() - t, 'seconds to open', file_name)

E aqui está a saída que recebo:

 1.6057319641113281 seconds to open 1.html
 1.3181514739990234 seconds to open 2.html
 1.1490132808685303 seconds to open 3.html
 1.2970092296600342 seconds to open 4.html
 1.0074846744537354 seconds to open 5.html
 1.5122349262237549 seconds to open 6.html
 1.1730327606201172 seconds to open 7.html
 1.9992561340332031 seconds to open 8.html

 etc.

Eu tenho um SSD e estou bastante surpreso com o fato de demorar mais de um segundo para abrir um arquivo pequeno.

Isso é normal? Se não, o que pode ser feito para acelerar?

Eu pensei erroneamente que meu problema era específico de Python. Agora eu tentei em outro PC e leva milissegundos (como deveria).

Além disso, compactar muitos arquivos pequenos também leva cerca de 1 segundo por arquivo. Portanto, o problema é que o Windows 10 leva mais de um segundo para abrir um arquivo.

Existe algo que eu possa fazer sobre isso? (exceto reinstalar a coisa toda)

    
por Leo 01.12.2017 / 11:57

1 resposta

1

Pode ser que a proteção antivírus em tempo real esteja atrasando a abertura de arquivos. Você pode testar se esta é a causa, desativando temporariamente o AV enquanto você executa novamente o teste.

De seus comentários, não consigo explicar por que haveria uma diferença entre duas máquinas diferentes se eles estivessem executando o mesmo software antivírus, a menos que as configurações sejam diferentes, incluindo qualquer exclusão de pasta ou de tipo de arquivo.

Se as diferenças de configurações não forem a causa, você precisará usar um monitor de desempenho para descobrir onde o verificador em tempo real do AV está gastando seu tempo.

    
por 01.12.2017 / 15:12