Почему crc32 работает в 6 раз медленнее, чем md5sum?
Написал скрипт чтобы найти все дубликаты файлов на своем компе и отказался от использования в этом скрипте crc32 потому что она долго работает. Сейчас скрипт сравнивает вначале по размеру, а потом в файлах с одинаковыми размерами вычисляется md5 хеш-сумма. Но это все равно слишком долго(если таких файлов с одинаковыми размерами оказывается несколько тысяч). Я не могу понять одного: почему crc32 работает медленнее, ведь должно было бы быть наоборот?? Есть ли в линуксе хеш функции, которые работают быстрее, чем md5?
Потому что так криво написана реализация CRC32. Вполне вероятно, что в вашей реализации таблица вычисляется для каждого файла, что и приводит к падению производительности.
я решил отказаться от использования хеш-сумм для крупных файлов, вместо хеша я делаю просто дамп нескольких байт файла из его середины(или первой трети файла - область можно поменять) :) Я исхожу из того, что если у двух файлов одинаковый размер(с точностью до байта), и одинаковое содержимое дампа, взятого из середины или из трети, то скорей всего эти файлы одинаковы. Сейчас постерирую скорость :)