Os arquivos que usam compactação NTFS são descompactados no disco ou na memória?

15

Como funciona a descompactação NTFS no Windows? Segundo a Microsoft, a descompactação NTFS é feita expandindo o arquivo e, em seguida, usando-o. Isso parece certo, mas minha pergunta é como esse processo ocorre tecnicamente.

O Windows carrega o arquivo compactado na memória, expande-o na memória e lê da memória? Ou carrega o arquivo compactado na memória, expande-o para o disco ou na memória, grava no disco e depois lê?

Estou tentando descobrir se talvez eu possa melhorar o desempenho do meu computador usando a compactação NTFS. Dessa forma, a unidade de disco lento ou SSD que não pode lidar com tantas operações de gravação sempre terá menos dados para gravar e ler, e meu poderoso processador que está ocioso na maioria das vezes pode descompactar os arquivos, melhorando minha velocidade de armazenamento e saúde .

    
por CausingUnderflowsEverywhere 05.07.2016 / 00:13

1 resposta

19

O Windows descomprime arquivos na memória. Fazê-lo no disco iria obliterar completamente qualquer melhoria de velocidade e causaria muita escrita desnecessária no disco. Veja o final de este artigo do blog da Microsoft sobre compactação e arquivos esparsos de NTFS :

  1. NTFS determines which compression unit is being accessed.
  2. The compression unit’s entire allocated range is read.
  3. If the unit is not compressed, then we skip to step 5. Otherwise, NTFS would attempt to reserve (but not allocate) the space required to write the decompressed CU back to disk. If insufficient free space exists on the disk, then the application might get an ERROR_DISK_FULL during the read.
  4. The CU would be decompressed in memory.
  5. The decompressed byte range would be mapped into cache and returned to the requesting application.
  6. ...

É claro que, se você estiver com pouca memória, a memória usada pelo processo de descompactação poderá fazer com que outra memória seja paginada e gravada no disco no arquivo de paginação. Felizmente, apenas os fragmentos contendo seções que seus programas realmente lêem serão descompactados; O NTFS não precisa descomprimir a coisa toda se você precisar apenas de alguns bytes.

Se o seu SSD for rápido, você provavelmente não obterá melhorias de velocidade da compactação NTFS. É possível que o tempo que seu processador gasta para descompactar dados, mais o tempo que seu disco gasta lendo os dados compactados, possa ser maior do que o tempo que seu SSD leva para ler os dados descomprimidos. Também depende do tamanho dos arquivos com os quais você trabalha. O tamanho mínimo de um arquivo compactável varia de 8 KB a 64 KB, dependendo do tamanho do cluster. Quaisquer arquivos menores que esse tamanho não serão compactados, mas uma pequena quantidade de registros seria adicionada.

Se você escreve muito em arquivos compactados, pode ver muita variação na velocidade devido ao algoritmo de compressão usado (LZ).

Outras leituras: Como a compactação NTFS afeta o desempenho?

    
por 05.07.2016 / 00:50

Tags