2016-11-04 9 views
0

Я хотел знать, как библиотека python hashlib обрабатывает разреженные файлы. Если в файле много нулевых блоков, вместо того, чтобы тратить процессор и память на чтение нулевых блоков, делает ли он какую-либо оптимизацию, например, сканирование карты блока индексного дескриптора и чтение только выделенных блоков для вычисления хэша?Python hashlib и разреженные файлы

Если он этого не делает, то каким будет самый лучший способ сделать это сам.

PS: Не уверен, что было бы уместно опубликовать этот вопрос в StackOverflow Meta.

Спасибо.

+1

Если вы скопировали свой резервный файл в другую файловую систему, которая не поддерживала разреженные файлы (или у которых был другой размер блока, так что был удален другой набор блоков), серьезно ли вы захотите, чтобы у него был другой хеш ? – jasonharper

ответ

1

Модуль hashlib даже не работает с файлами. Вы должны прочитать данные и передать блоки в хеширующий объект, поэтому я понятия не имею, почему вы думаете, что он будет обрабатывать разреженные файлы вообще.

Уровень ввода-вывода не делает ничего особенного для разреженных файлов, но это работа ОС; если он знает, что файл разрежен, операции «читать» не нужно делать ввода-вывода, он просто заполняет ваш буфер нулями без ввода-вывода.

+0

Спасибо за разъяснение .. – CodeWithPride