Сколько времени займет получение данных?

Это больше аппаратный вопрос, чем программный.

Я хочу получить 512-байтовый сектор данных с жесткого диска. Среднее время поиска составляет 9 миллисекунд, а диск вращается со скоростью 7200 об / мин. После размещения данных можно передавать данные со скоростью 15 МБ / с. В среднем, сколько времени займет получение данных?

Должна быть какая-то формула, чтобы вычислить это, верно? С этим я планирую написать свою программу. Пожалуйста помоги.

2 ответа

Теоретически: если вы ищете средний случай, то это будет среднее время поиска, чтобы найти эти данные + количество времени для передачи данных. Но поскольку на диске установлена ​​какая-то ОС и ваши данные могут быть фрагментированы (в зависимости от того, что это такое), время может значительно увеличиться.

PS Существует также время обработки команды, но оно обычно находится в диапазоне нано секунд

Ответ на это нетривиален и, вероятно, не имеет значения. Время извлечения данных будет зависеть от ресурсов ОС, различных уровней кэширования, где данные физически находятся на диске (внешний край быстрее, чем внутри) и т. Д.

Я говорю нерелевантно, потому что как программист, вы ничего не можете с этим поделать, и вы также не можете на это полагаться. Что делать, если диск работает медленнее, чем ожидалось (монтирование NFS/Samba)? Быстрее (RAID0, SSD)?

Другие вопросы по тегам