2010-11-05 5 views
5

Я пишу приложение, которое произведет миллионы вычислений и сохранит результаты в большом количестве файлов на диске. Потенциально я могу иметь тысячи файлов разных размеров и хранить до тех пор, пока они не будут проанализированы. После этого я собираюсь оставить только пару из них, удалить остальных и начать процесс снова и снова. Ради моего приложения это отлично работает, но теперь я начинаю беспокоиться о том, что я буду разбивать свой диск как сумасшедший (мой диск использует NTFS). Дефрагментация диска периодически не находится под моим контролем, так как я не являюсь администратором машины.Как избежать фрагментации жесткого диска?

Есть ли способ избежать фрагментации диска?

ответ

1

Попробуйте создать собственный формат файла, чтобы собрать несколько файлов вместе?

4

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

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

3

Используйте базу данных, это сделано для такого рода вещей.

1

Я лично сказал, что в качестве программиста вы не должны беспокоиться о проблемах с системным уровнем, таких как , слишком много, если вы не работаете на встроенной платформе. (Например, откуда вы знаете, что следующая версия целевой ОС не решит проблему для вас?)

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

0

Как создать другой раздел для использования вашей программой? Затем вы можете делать все, что захотите, в разделе (D :) и сдуть его между ключевыми запусками вашего приложения (а не тратить время на дефрагментацию). Еще лучше, просто заставьте приложение писать на внешний накопитель, полностью отдаляя его от вашей основной системы.

+0

Пожалуйста, ознакомьтесь с http://meta.stackexchange.com/questions/28416/what-is-the-policy-on-signatures-and-links-in-answers-for-so-questions. Кроме того, как указано в другом месте на мета: «Эм, вы понимаете, что ссылки в ответах не указаны, не так ли?» –

1

Если ваши файлы имеют размер менее 4096 байт, фрагментации в формате NTFS не будет. Размер кластера для NTFS, если 4 Кбайт, поэтому даже 1 байтовый файл будет использовать 4 КБ на диске. Просто посмотрите на свойства файла любого файла. Есть свойства для размера и размера на диске.

Смежные вопросы