I've heard that NTFS compression can reduce performance due to extra CPU usage, but I've read reports that it may actually increase performance because of reduced disk reads.
Correto. Supondo que sua CPU, usando algum algoritmo de compressão, pode compactar em C MB / se descompactar a D MB / s, e seu disco rígido possui velocidade de gravação W e velocidade de leitura R. Desde que C > W, você obtém um ganho de desempenho ao escrever e enquanto D > R, você obtém um ganho de desempenho ao ler. Esta é uma suposição drástica no caso de escrita, uma vez que o algoritmo de Lempel-Ziv (como implementado no software) tem uma taxa de compressão não determinística (embora possa ser restringido com um tamanho de dicionário limitado).
How exactly does NTFS compression affect system performance?
Bem, é exatamente confiando nas desigualdades acima. Contanto que o seu processador possa sustentar uma taxa de compressão / descompressão acima da velocidade de gravação do disco rígido, você deverá experimentar um ganho de velocidade. No entanto, isso tem um efeito em arquivos grandes, que podem sofrer uma fragmentação intensa (devido ao algoritmo) ou não ser compactado em tudo .
Isso pode ser devido ao fato de que o algoritmo Lempel-Ziv diminui à medida que a compressão se move (já que o dicionário continua a crescer, exigindo mais comparações quando os bits chegam). A descompressão é quase sempre a mesma taxa, independentemente do tamanho do arquivo, no algoritmo Lempel-Ziv (já que o dicionário pode ser endereçado usando um esquema base + offset).
A compactação também afeta o modo como os arquivos são dispostos no disco . Por padrão, uma única "unidade de compactação" é 16 vezes o tamanho de um cluster (portanto, a maioria dos sistemas de arquivos NTFS de cluster de 4 kB exigirá blocos de 64 kB para armazenar arquivos), mas não aumenta além de 64 kB. No entanto, isso pode afetar os requisitos de fragmentação e espaço no disco.
Como nota final, a latência é outro valor interessante de discussão. Embora o tempo real necessário para compactar os dados apresente latência, quando a velocidade do clock da CPU está em gigahertz (ou seja, cada ciclo de clock é menor que 1 ns), a latência introduzida é insignificante comparada às taxas de busca do disco rígido ordem de milissegundos, ou milhões de ciclos de clock).
Para ver realmente se você experimentará um ganho de velocidade, há algumas coisas que você pode tentar. A primeira é avaliar seu sistema com um algoritmo de compactação / descompactação baseado no Lempel-Ziv. Se você obtiver bons resultados (ou seja, C > W e D > R), tente ativar a compactação no disco.
De lá, você pode querer fazer mais referências sobre o desempenho real do disco rígido. Uma referência realmente importante (no seu caso) seria ver a velocidade com que seus jogos são carregados e ver a velocidade com que seus projetos do Visual Studio são compilados.
TL, DR: A compactação pode ser viável para um sistema de arquivos que utiliza muitos arquivos pequenos que exigem alta taxa de transferência e baixa latência. Arquivos grandes são (e devem ser) não afetados devido a problemas de desempenho e latência.