Вы должны использовать контрольную сумму, чтобы решить, что может пропустить обработку файла. Используйте сравнение файлов, чтобы действительно решить.
Контрольная сумма для нового файла будет соответствовать вашему исходному файлу, если их содержимое совпадает. Он также будет соответствовать другим файлам, которые не идентичны, потому что существует больше возможных строк содержимого файла, чем значений контрольной суммы, независимо от используемой схемы контрольной суммы. (Вы можете сделать это довольно низкой вероятностью, но вы не можете решить проблему).
Итак, что вы должны сделать, если файл X (подлежащий обработке), имеющий контрольную сумму C, так же, как файл A (уже обработанный), должен сравнить содержимое X с содержимым A. Если они идентичный , вы можете использовать ответ для A в качестве ответа для X. Если ваша схема контрольной суммы вообще приличная, если X и A НЕ идентичны, вы узнаете после сравнения всего нескольких байтов. (Вы даже можете сначала проверить размеры файлов, но я сомневаюсь, что это статистически спасает вас в любое время).
Конечно, существует проблема вычисления контрольной суммы в X: она требует чтения всего содержимого X. Чтобы вычислить его, вы должны прочитать весь X. Если генерация ответа дешевле по сравнению с чтением с диска, то есть не много смысла избегать работы.