Введение ¶
Переезжаю на новое железо и на чистый SSD. Встал перед выбором алгоритма хеширования для свежей файловой системы BTRFS. Здесь представлен скрипт, которым я определил что на моём конкретном процессоре бытсрее.
Тело ¶
Искал в начале утилиту для проведения замеров производительности разных алгоритмов хеширования. Зачем? Дело в том, что, каким бы быстрым не был алгоритм на бумаге, если у меня нет аппаратной его поддержки на процессоре - он будет медленным. А как понять что у меня есть на процессоре? В спецификации в сети не нашёл информацию.
Попал на утилиту rhash, у которой есть ключ --speed
ним то я и попробовал замерять производительность, но результаты у blake2b и crc32c были практически идентичны, что показалось странным. В итоге пришёл к вот такому скрипту.
|
|
Что здесь происходит?
- Создаётся tmpfs временная точка монтирования на 5 ГБ (прямо в оперативной памяти, чтобы не зависет от SSD/HDD)
- Создаётся внутри файл на 4 ГБ и по очереди форматируется в BTRFS с разными алгоритмами хеширования
- Для каждого алгоритма выполняется запись файлов в двух режимах
- Один большой файл на 4 ГБ
- 1000 файлов по 4 МБ
- По итогу команда time выводит время выполнения скрипта
Так вот на моём 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz лучший результат показал старый, добрый crc32c (~35 секунд), а остальные были по ~52 секунды.