Según mis observaciones como desarrollador de Java que trabaja en estaciones de trabajo Windows, NTFS es lento en comparación con los sistemas de archivos Linux. La pregunta es: ¿hay algo en el controlador NTFS que pueda ajustarse manualmente, por ejemplo, darle más memoria para caché? ¿Habilitar algunos algoritmos experimentales? Si no está disponible, ¿existe quizás otro sistema de archivos que pueda usarse en Windows, tal vez incluso comercial, que sea más rápido que NTFS?
Para ser claros, no busco mejorar las velocidades de compilación para proyectos Maven, me gustaría obtener una mejora general para el sistema operativo. Tengo la sensación de que NTFS está desactualizado y es lento en comparación con los sistemas de archivos Linux. Me parece extraño que el sistema operativo más popular del planeta tenga un solo sistema de archivos que aún requiera desfragmentación manual. Tal vez hayaes¿una alternativa?
Actualizar:Esto es lo que es lento según mis observaciones. Estoy creando/empaquetando un proyecto, lo que significa muchas operaciones de lectura/escritura en el disco. El sistema de compilación es multiplataforma (Java, Maven), por lo que puedo realizar exactamente las mismas acciones cuando inicio en Ubuntu, por ejemplo.
En Linux mis compilaciones son al menos 1/3 más rápidas. De ahí la pregunta sobre el sistema de archivos. Lo siento si está fuera de lugar.
Respuesta1
Si bien me encantaría ver algo como ZFS disponible para hosts de Windows, NTFS no es un sistema de archivos horrible. Es compatible con la mayoría de las funciones del sistema de archivos "moderno" (atributos extendidos, registro en diario, ACL, lo que sea), pero se ve obstaculizado por Explorer y la mayoría de las otras aplicaciones que no admiten ninguna de estas.
Una cosa que acabará absolutamente con su rendimiento es tener "demasiadas" entradas en un directorio. Una vez que pasa un par de miles de entradas en un directorio, todo se ralentiza. Literalmente, toda la máquina se detendrá esperando a que NTFS cree o elimine entradas cuando esto suceda.
Solía trabajar con una aplicación que generaba documentos basados en HTML para ensamblados .NET; crearía un archivo por propiedad, método, clase, espacio de nombres, etc. Para ensamblajes más grandes veríamos más de 20k archivos, todos muy bien volcados en un solo directorio. La máquina pasaría un par de horas durante la compilación bloqueada en NTFS.
En teoría, Windows admite complementos del sistema de archivos, lo que haría posible ZFS, ext3 o cualquier otro (incluso FUSE) nativo. En la práctica, las API no están documentadas, por lo que estás completamente solo.
Ahora, ya que estás desarrollando Java, ¿podrías instalar un sistema operativo diferente en tu máquina o usar una máquina virtual sobre Windows?
Además, es posible que quieras probar algunos puntos de referencia de sistemas de archivos independientes de la plataforma (iozone, bonnie... probablemente hay otros más modernos que no conozco, tal vez incluso algunos escritos en Java) para ver si es en realidad, el sistema de archivos te está frenando, o si es algo más. Optimización prematura y todo eso...
Respuesta2
- Desactivar la hora del último acceso
- Desactivar nombres de archivos cortos
- Desactivar la notificación de eliminación
- Desactivar la indexación
- Deshabilitar el registro
- Deshabilite las instantáneas y las versiones anteriores, así como las cuotas y recursos compartidos.
- Habilitar verificación de recorrido de derivación
Supongo que la verdadera solución sería reescribir su sistema de compilación para que use la API nativa del sistema de archivos de Windows, en lugar de la API de Unix (fopen, etc.) debajo del marco de portabilidad. Pero eso no va a suceder, así que básicamente estás atrapado en cualquier nivel de desempeño que ellos consideraran aceptable.
A menudo, cuando utiliza sistemas que no fueron escritos originalmente para Windows, descubre que el recorrido de directorios se ha manejado muy mal, así que asegúrese de tener un árbol de directorios muy plano.
Respuesta3
Hay un sistema de archivos compatible con el nuevo sistema operativo Windows Y es más rápido que NTFS. Es exFAT. Existe la posibilidad de utilizarlo para la unidad del sistema. Pero se desconoce qué complicaciones podría tener.
Sin embargo, puedes usarlo para otras particiones. Es más rápido con operaciones aleatorias de lectura/escritura. Perfecto para un SSD por ejemplo.
Respuesta4
Nota histórica: HuboWinFS, que agregó una capa más estructurada sobre NTFS para permitir que Windows trabaje con el contenido de los archivos de manera más eficiente.
El "verdadero" sucesor de NTFS esReFS. Su enfoque es la resiliencia. Sólo está disponible en Windows 10 Enterprise y Windows Pro para estaciones de trabajo. Una buena lectura esNTFS versus ReFS: cómo decidir cuál usar.