2010-11-05 23 views
5

Estoy escribiendo una aplicación que hará millones de cálculos y almacenará los resultados en una gran cantidad de archivos en el disco. Potencialmente puedo tener miles de archivos, de diferentes tamaños, y almacenarlos hasta que sean analizados. Después de esto, voy a mantener solo un par de ellos, eliminar los otros y comenzar el proceso de nuevo. Por el bien de mi aplicación, esto funciona muy bien, pero ahora estoy empezando a preocuparme de que fragmentaré mi disco como loco (mi disco usa NTFS). La desfragmentación periódica de la unidad de disco no está bajo mi control, ya que no soy el administrador de la máquina.¿Cómo evitar la fragmentación del disco duro?

¿Hay alguna forma de evitar la fragmentación del disco?

Respuesta

1

¿Intenta crear su propio formato de archivo para reunir varios archivos?

4

La fragmentación de archivos pequeños generalmente no es un problema. Si los archivos se leen una vez, en realidad no importan; solo es un problema de tiempo real si un archivo grande está en muchas partes y el disco debe hacer muchas búsquedas para obtenerlo todo.

La solución obvia es no escribir muchos archivos de registro pequeños, ya sea combinarlos en un archivo grande o usar una base de datos, para eso están.

3

Use una base de datos, está hecho para este tipo de cosas.

1

Yo personalmente diría que como programador no debería preocuparse por los problemas de nivel del sistema operativo como demasiado a menos que esté trabajando en una plataforma incrustada. (Por ejemplo, ¿cómo sabe que la próxima versión del sistema operativo objetivo no le habrá solucionado el problema?)

Sin embargo, si usar una base de datos no es una opción (parece una solución bastante obvia) dicho eso) podrías escribir los datos en menos archivos de mayor tamaño.

0

¿Qué tal crear una partición diferente para que la use su programa? A continuación, puede hacer lo que quiera en la partición (D :) y eliminarlo entre ejecuciones clave de su aplicación (en lugar de perder tiempo desfragmentando). Mejor aún, solo haga que su aplicación escriba en un disco externo, manteniéndolo completamente alejado de su sistema principal.

+0

Lea http://meta.stackexchange.com/questions/28416/what-is-the-policy-on-signatures-and-links-in-answers-for-so-questions. Además, como se señaló en otro lugar en meta, "Um, te das cuenta de que los enlaces en las respuestas no se siguen, ¿verdad?" –

1

Si sus archivos tienen menos de 4096 bytes, no habrá fragmentación en una partición con formato NTFS. El tamaño del clúster para NTFS es de 4 KB, por lo que incluso un archivo de 1 byte usará 4 KB en el disco. Solo mira las propiedades del archivo de cualquier archivo. Hay propiedades para Tamaño y Tamaño en el disco.

Cuestiones relacionadas