1

Недавно я задал следующий вопрос по SO:

У меня есть папка foo с тысячами файлов .html по 300 КБ каждый.

Вот что я делаю, чтобы открыть их:

 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)

И вот результат, который я получаю:

 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.

У меня есть SSD, и я очень удивлен, что для открытия небольшого файла требуется больше секунды.

Это нормально? Если нет, что можно сделать, чтобы ускорить его?

Я ошибочно подумал, что моя проблема связана с Python. Теперь я попробовал это на другом ПК, и это занимает миллисекунды (как и должно быть).

Кроме того, архивирование большого количества маленьких файлов также занимает около 1 секунды на файл. Таким образом, проблема в том, что для открытия файла Windows 10 требуется более 1 секунды.

Что я могу с этим поделать? (кроме переустановки всего этого)

1 ответ1

1

Возможно, антивирусная защита в реальном времени задерживает открытие файла. Вы можете проверить, является ли это причиной, временно отключив AV во время повторного запуска теста.

Исходя из ваших комментариев, я не могу объяснить, почему будет разница между двумя разными машинами, если они работают с одним и тем же программным обеспечением AV, если только параметры не отличаются, включая любые исключения папок или типов файлов.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .