На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Модернизация файловой системы , Встроенный MD5 или подобное
    Существует маленькая вероятность что если 2 одинаковых файла имеют одинаковый размер, дату изменения и имя то они будут различны по содержанию.
      Цитата Славян @
      Раз так, то постараюсь тоже зайти с несколько боковой стороны:
      1. Смотрите, пусть люди хотят сравнить картинки. Алгоритм может быстро пробежаться по файлам, посмотреть размеры картинок и выдать "не равны", если уже размеры разные.

      Тогда давайте запустим процедуру сравнения файлов.
      И, скорее всего, окажется, что по-байтное сравнение быстрее, чем расчёт хеша.
      А если сравнивать не понадобится, а мы считаем это хеш для всех файлов..
      ---
      Кстати, из чего следует, что не будет "коллизий" ?
      Файлы разные, а хеши одинаковые, и что тогда ?
        Цитата ЫукпШ @
        И, скорее всего, окажется, что по-байтное сравнение быстрее, чем расчёт хеша.
        А если сравнивать не понадобится, а мы считаем это хеш для всех файлов..
        Так конечно быстрее! Но суть же в том, что хэши считаются всегда и в фоновом, а проверки нужны редко. И в эти редкие случаи будут "выстреливать" "на ура" случаи совпадения!

        Цитата ЫукпШ @
        Кстати, из чего следует, что не будет "коллизий" ?
        Не следует. Сие - проблема.

        Цитата ЫукпШ @
        Файлы разные, а хеши одинаковые, и что тогда ?
        Тут надо додумать на каких вариантах будем пренебрегать, а когда важно. Т.е., скажем, если человек песенку сравнил и в ней коллизия, то проиграем ложную, а от него пусть придёт отчёт, что коллизия и надо почётче. А если не пришло, то наверное коллизия ушла в шумы и чёрт с ней. А вот если там какой-то важный системный файл, то можно и тщательнее смотреть.
        Одним словом, додумать надо детали. :yes:
          Сравнение хэшей помогает, если файлов больше 2, и только если они не все одинаковые, иначе в конце концов их все равно придётся сравнивать.
          Или если проверяется изменение файла. Тогда можно хранить старую копию на медленном носителе, и вообще не читать его, если хэш отличается. В случае длинного хэша можно даже пренебречь малой вероятностью коллизии хэшей при изменении.

          Если надо сравнить несколько файлов между собой, их, в принципе, можно сравнить кусками за один проход чтения. По времени это может оказаться сравнимым с вычислением хэшей, и последующим сравнением этих кэшей, если хэши окажутся разными. Если хотя бы пара хэшей совпадут, придётся ещё раз перечитать соответствующие файлы, и вариант с хэшами окажется медленнее.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0253 ]   [ 15 queries used ]   [ Generated: 28.03.24, 15:02 GMT ]