Windows com um sistema de arquivos melhor

13

De minhas observações como um desenvolvedor de Java trabalhando em estações de trabalho Windows, o NTFS é lento comparado aos sistemas de arquivos Linux. A pergunta é, existe alguma coisa no driver NTFS que pode ser ajustada manualmente, por exemplo, dar mais memória para o cache? Ativar alguns algoritmos experimentais? Se isso não estiver disponível, talvez haja outro sistema de arquivos que possa ser usado no Windows, talvez até comercial, mais rápido que o NTFS?

Para ser claro, não estou querendo melhorar a velocidade de compilação para projetos Maven, gostaria de obter uma melhoria geral para o sistema operacional. Tenho a sensação de que o NTFS está muito desatualizado e lento em comparação com os sistemas de arquivos Linux. Parece-me estranho que o SO mais popular do planeta tenha apenas um sistema de arquivos que ainda requer a desfragmentação manual. Talvez haja uma alternativa?

Atualização: Aqui está o que está lento de acordo com minhas observações. Estou construindo / empacotando um projeto, o que significa muitas operações de leitura / gravação no disco. O sistema de compilação é multi-plataforma (Java, Maven), para que eu possa executar exatamente as mesmas ações quando iniciado no Ubuntu, por exemplo.

No Linux, minhas construções são pelo menos 1/3 mais rápidas. Daí a questão sobre o sistema de arquivos. Me desculpe se está fora do lugar.

    
por Yuri Ushakov 02.02.2011 / 09:25

4 respostas

3

Embora eu adoraria ver algo como o ZFS disponível para hosts Windows, o NTFS não é um sistema de arquivos horrível. Ele suporta a maioria dos recursos de sistema de arquivos "modernos" (atributos estendidos, registro no diário, ACLs, o nome dele), mas é prejudicado pelo Explorer e a maioria dos outros aplicativos não suportam nenhum desses recursos.

Uma coisa que absolutamente matará seu desempenho é ter entradas "demais" em um diretório. Depois de passar um par de milhares de entradas em um diretório, tudo diminui para um rastreamento. Literalmente, a máquina inteira parará de esperar que o NTFS crie ou remova entradas quando isso acontecer.

Eu costumava trabalhar com um aplicativo que gerava documentos baseados em HTML para assemblies .NET; ele criaria um arquivo por propriedade, método, classe, espaço de nomes, etc. Para montagens maiores, veríamos arquivos de 20 + k, todos bem colocados em um único diretório. A máquina passaria algumas horas durante a construção bloqueada no NTFS.

Em teoria, o Windows suporta plug-ins de sistema de arquivos, o que tornaria possível o ZFS nativo, o ext3 ou qualquer outro (mesmo FUSE). Na prática, as APIs não são documentadas, então você está completamente sozinho.

Agora, como você está desenvolvendo Java, você poderia instalar um sistema operacional diferente em sua máquina ou usar uma VM no topo do Windows?

Além disso, você pode querer experimentar alguns benchmarks de sistema de arquivos independentes de plataforma (iozone, bonnie ... provavelmente há outros mais modernos que eu não conheço, talvez até alguns escritos em Java) para veja se é realmente o sistema de arquivos que o retém ou se é outra coisa. Otimização prematura e tudo isso ...

    
por 02.02.2011 / 17:51
5
  • Desativar o tempo do último acesso
  • Desativar nomes de arquivos curtos
  • Desativar a exclusão da notificação
  • Desativar a indexação
  • Desativar o journeling
  • Desative a cópia de sombra e versões anteriores e cotas e compartilhamentos.
  • Ativar a verificação transversal de desvio

Eu acho que a solução real seria reescrever seu sistema de compilação para que ele usasse a API nativa do sistema de arquivos do Windows, em vez da própria API unix (fopen etc) sob a estrutura de portabilidade. Mas isso não vai acontecer, então basicamente você está preso a qualquer nível de desempenho que eles considerem aceitável.

Muitas vezes, ao usar sistemas não originalmente escritos para o Windows, você descobre que o traversal do diretório foi tratado muito mal, portanto, certifique-se de ter uma árvore de diretórios muito simples.

    
por 16.10.2012 / 08:58
3

Existe um sistema de arquivos que é suportado pelo novo sistema operacional Windows e é mais rápido que o NTFS. É exFAT. Existe a possibilidade de usá-lo para a unidade do sistema. Mas não se sabe quais complicações isso poderia ter.

Você certamente pode usá-lo para outras partições. É mais rápido com operações aleatórias de leitura / gravação. Perfeito para um SSD por exemplo.

    
por 02.02.2011 / 12:38
2

Você tem um programa antivírus que está sendo executado na verificação de acesso / gravação da pasta do seu projeto?

A compilação envolve a leitura e a gravação de vários arquivos pequenos em rápida sucessão, o que pode sobrecarregar o verificador de vírus. Adicione a pasta do seu projeto à lista de pastas excluídas e veja se isso melhora a situação.

No Linux, você (provavelmente) não possui nenhum software antivírus ...

    
por 02.02.2011 / 12:46