Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
124 / 37 / 6
Регистрация: 14.01.2012
Сообщений: 264
1

Быстрый способ сравнения файлов

12.02.2013, 12:40. Показов 4132. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На одном форуме прочел коммент пользователя:
самый лучший вариант - чтение файлов по кластерам и сравнения памяти
т.к. размер кластера кратен 4 то и скорость сравнения будет намного больше. А если еще и заюзать нормальные функции сравнения (MMX/SSE) то еще быстрее.
Скорость чтения файлов по кластерам почти такая же как и по одному байту.
За исключением того, что тут за раз ты считываешь 1 байт, а там 1 кластер (что в принципе 4096 килобайт часто )
А вообще самый лучший вариант вообще читать данные кратные размеру кластера, но не более чем кеш у винта. идеал 32768 и 65536 байта.
Как реализовать чтение по кластерам и сравнение в памяти?
Сравнение по байтам, по хэшу не устраивает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2013, 12:40
Ответы с готовыми решениями:

Более быстрый вариант сравнения фотографий
Всем привет. Нужно сравнить на идентичность несколько сотен фотографий, чтобы убрать...

Быстрый способ добавления кода
Добрый день! Попался в руки вопрос (см. фото ниже). Как вы думаете, какой правильный ответ?

Быстрый способ ручного заполнения матрицы
Есть ли аналогичный, быстрый способ ручного заполнения матрицы в С# вот такому методу в С++ int...

Самый быстрый способ склеивания строк
Закешировал файл в строку, десериализовал данные в массив экземпляров специально созданного класса....

21
124 / 37 / 6
Регистрация: 14.01.2012
Сообщений: 264
16.02.2013, 01:32  [ТС] 21
Author24 — интернет-сервис помощи студентам
Все я доволен, все работает как надо =)
Я ещё не прошел тему по unsafe и параметрам с *, да и с FileStream не очень дружу, потому такие нелепые вопросы возникают.
Спасибо за терпение =)

Добавлено через 4 часа 55 минут
Ещё один вопрос, я так понимаю что сравнение в данном методе идет только по первым 4 кб? Выходит проверка файлов не дает 100% результат? Или kolorotur Вы имеете ввиду что так как я записал проверяет только первые 4 кб и можно записать по другому , что бы проверяло полностью?
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
16.02.2013, 10:36 22
Цитата Сообщение от Sleepy_Master Посмотреть сообщение
так понимаю что сравнение в данном методе идет только по первым 4 кб?
Сравнение в вашем методе идет по первым 4кб, потому что вы считываете и проверяете только первые 4кб.
Надо в цикле считывать весь файл по 4Кб и проверять до тех пор, пока не считается весь файл или не встретится первое несовпадение.

Мой же метод к файлам никакого отношения не имеет - он даже не знает о существовании каких-то файлов. Все, что он делает - это сравнивает два массива байт на соответствие элементов.
1
16.02.2013, 10:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2013, 10:36
Помогаю со студенческими работами здесь

Самый быстрый способ обрезать число по модулю
Здравствуйте, ищу самый быстрый способ обрезать число по модулю. Скажем, если лимит 50, то число...

Быстрый способ подсчитать количество строк, удовлетворяющих условию
Здравствуйте, подскажите пожалуйста быстрый способ подсчитать количество строк удовлетворяющих...

Быстрый способ найти директорию стима и доты 2 на компьютере
Добрый день! Ищу быстрый способ найти директорию стима и доты 2 на компьютере. Есть идеи?

Самый быстрый способ получения первых двух элементов строки
Есть строки, где данные разделены табами (\t): слово1 слово2 слово3 слово4...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru