Быстрое чтение с жесткого диска

Я создал виртуальную файловую систему (очень похожую на толстую) на основе двух файлов.

  1. Первый файл — таблица размещения.

В нем хранится информация о размещении файлов (на самом деле это не файлы, но это не важно)

Каждая запись имеет следующую структуру:

  1. Имя — фиксированный размер (100 байт). первые 4 байта — длина строки.
  2. Длина — 4 байта, общая длина файла
  3. StartCluster — 4 байта id начального кластера
  4. EndCluster — 4 байта id конечного кластера

Каждая запись имеет фиксированный размер, и у меня есть хеш-таблица в памяти, которая помогает мне находить позицию каждой записи.

  1. Второй файл — Виртуальный диск

VD на основе кластеров. Каждый кластер имеет фиксированный размер — 256 байт. Последние 4 байта — это указатель на следующий кластер в цепочке файлов.

Проблема заключается в очень низкой скорости, когда я пытаюсь прочитать все файлы. Как я могу улучшить производительность? Есть ли какие-нибудь советы по быстрому чтению с жесткого диска.

Например: стоит ли читать файл большими блоками? Когда я читаю даже небольшую часть файла, файл кешируется ОС, верно? И в следующий раз я буду просто брать данные из памяти, а не с HD?

Ну, у меня есть несколько таких вопросов, на которые я могу получить ответы?


Некоторые параметры;

  • Вы можете увеличить размер кластера (256 байт мало, большинство ОС в наши дни для кластера используется 4 КБ +)

  • Если вы читаете все файлы, вы можете выполнить сортировку на основе startCluster, чтобы вы читали файлы в том порядке, в котором они физически близки друг к другу на диске. Поэтому всякий раз, когда ОС получает блок размером 4K +, более вероятно, что вам понадобятся другие его части со следующим файлом.

  • Вы можете дефрагментировать файл виртуального диска

  • Похоже, вы уверены, что это проблема чтения с диска. Вы проверяли, что то, что вы делаете с файлом после того, как вы только что его прочитали, не является медленной?

  • SSD-хранилище — это большое количество случайного доступа. . Переместите виртуальный диск на SSD



Каков самый быстрый способ обработки файлов при использовании SSD и HDD?

У меня есть несколько огромных файлов, которые мне нужно проанализировать, чтобы получить файлы еще большего размера, и 2 диска на моей машине, один SSD и один HDD.

Мне было интересно, что бы быть самым быстрым способом обработки этих файлов: я думаю, было бы лучше читать с одного диска и писать на другом, но вы бы предпочли читать с SSD или HDD? Или, может быть, поскольку SSD быстрее, было бы лучше сделать все на нем?

Я ищу совета не только для этого конкретного случая, но и для любого вида деятельности по обработке файлов, когда вы интенсивно читаете И записываете на диск, например, сжатие файлов, преобразование видео, и т. д.


В общем , SDD имеет лучшую производительность в части чтения вашего процесса, чем HDD. И, в целом , ваш SDD мог использоваться раньше, поэтому может не хватить «чистых областей» для записи без необходимости сначала выполнить какое-то стирание..

Если вы не можете проверить , какая комбинация быстрее, попробуйте читать с SDD и записывать на жесткий диск.


Принимая во внимание тот факт, что SSD может иметь гораздо более высокую скорость чтения/записи, чем обычный механический HDD, логика подсказывает, что любая задача, основанная на чтении и скорость записи лучше достигается с помощью SSD. Очевидно, что следует учитывать размер файлов (и результирующих файлов) и размер SSD.

Если ваш SSD относительно новый, то, скорее всего, он будет обрезан. В этом случае « стирание », упомянутое в другом ответе, становится устаревшим, поскольку оно обеспечивает чистоту диска.

Я бы посоветовал, если у вас достаточно места для хранения на SSD, используйте его.


Я сам провел несколько тестов, вот настройка:

  • SSD: Intel, 80Go, 69% бесплатно
  • HDD: WD Velociraptor 160Go/10k об/мин, 79% бесплатно

Я читаю файл 1Go и добавляю информацию в каждую строку, создавая файл 3Go, с использованием пакетной записи на C # с использованием StreamReader/StreamWriter.

И вот результаты:

  RW раз в секундах в среднем SSD SSD 79 77 78 77  78SSD HDD 67 62 70 68 68HDD SSD 100113 85 74118 68 81 91HDD HDD 81 81 70 80 78  

Итак, как всегда, когда я делаю тесты, меня очень смущает результаты, особенно скорость процесса от жесткого диска к жесткому диску и разброс от жесткого диска к процессу твердотельного накопителя (поэтому я сделал больше мер для этого).

Очевидно, что это лучше (по крайней мере, на моей конфигурации) в rea d на SSD и запись на HDD. Если у кого-то есть объяснение результатов, я все слышу.

2


Это зависит от размеров файлов. Если вы имеете дело с файлами меньшего размера, например 4–256 КБ или около того, SSD будет работать лучше, чем HDD, если вы работаете с большим количеством файлов одновременно.

Если вы работаете с большими файлов, последовательно, например, видео файлов, жесткий диск будет лучше, в зависимости от емкости. Обычно более высокая емкость приводит к более высокому количеству последовательного чтения и записи из-за увеличения плотности пластины и, в свою очередь, требует меньшего движения головки. Если ваш жесткий диск имеет емкость менее 750 ГБ и НЕ изготовлен в течение последних трех лет или около того, SSD, вероятно, превзойдет жесткий диск во всех аспектах, кроме емкости.


SSD — лучший вариант для чего угодно . Что бы вы ни хотели с ним делать. SSD очень, очень быстрые … наверное, в десять раз быстрее … нет, не шучу, это действительно так быстро. Итак, что бы вы ни делали на своем компьютере, используйте твердотельный накопитель..

Оцените статью
clickpad.ru
Добавить комментарий