Eu estava lendo algo parecido com isso ontem sobre o OSX e sua compactação do sistema de arquivos - Basicamente, a resposta gira em torno do que você deseja compactar - neste exemplo, ele está falando sobre os dados "FAT"; estruturas de arquivos, propriedades, metadados etc. que quando armazenados juntos podem ser compactados para economizar espaço e serem lidos no processador mais rapidamente do que procurar a cabeça em todo o lugar para encontrar os dados de cada arquivo ...
Mas a compactação não consiste apenas em economizar espaço em disco. Também é um exemplo clássico de troca de ciclos de CPU por menor latência de E / S e largura de banda. Nas últimas décadas, o desempenho da CPU melhorou (e os recursos de computação são mais abundantes - mais sobre isso mais tarde) a uma taxa muito mais rápida do que o desempenho do disco. Os tempos modernos de busca no disco rígido e os atrasos rotacionais ainda são medidos em milissegundos. Em um milissegundo, uma CPU de 2 GHz passa por dois milhões de ciclos. E então, é claro, ainda há o tempo real de transferência de dados a considerar.
É verdade que vários níveis de cache em todo o sistema operacional e hardware funcionam poderosamente para ocultar esses atrasos. Mas esses bits precisam sair do disco em algum momento para preencher esses caches. Compressão significa que menos bits precisam ser transferidos. Dada a quantidade quase cômica de recursos da CPU em um Mac moderno com vários núcleos em uso normal, o tempo total necessário para transferir uma carga compactada do disco e usar a CPU para descomprimir seu conteúdo na memória ainda será geralmente muito menor que o tempo levaria para transferir os dados em formato não compactado.
Isso explica os benefícios potenciais de desempenho da transferência de menos dados, mas o uso de atributos estendidos para armazenar o conteúdo do arquivo também pode tornar as coisas mais rápidas. Tudo tem a ver com a localidade dos dados.
Se há algo que retarda mais o disco rígido do que a transferência de uma grande quantidade de dados, é mover a cabeça de uma parte do disco para outra. Cada movimento significa tempo para que a cabeça comece a se mover, pare e garanta que está posicionada corretamente sobre o local desejado, depois aguarde o disco giratório colocar os bits desejados embaixo. Tudo isso é real, físico, partes móveis, e é incrível que eles façam sua dança de maneira tão rápida e eficiente quanto eles, mas a física tem seus limites. Esses movimentos são os verdadeiros assassinos de desempenho para armazenamento rotacional como discos rígidos.
O formato de volume HFS + armazena todas as suas informações sobre arquivos - metadados - em dois locais principais no disco: o arquivo de catálogo, que armazena datas, permissões, propriedade e várias outras coisas, e o arquivo de atributos, que armazena "garfos nomeados" . "
Atributos estendidos no HFS + são implementados como garfos nomeados no arquivo de atributos. Mas, diferentemente dos bifurcações de recursos, que podem ser muito grandes (até o tamanho máximo de arquivo suportado pelo sistema de arquivos), os atributos estendidos no HFS + são armazenados "em linha" no arquivo de atributos. Na prática, isso significa um limite de cerca de 128 bytes por atributo. Mas isso também significa que a cabeça do disco não precisa fazer uma viagem para outra parte do disco para obter os dados reais.
Como você pode imaginar, os blocos de disco que compõem os arquivos Catalog e Attributes são freqüentemente acessados e, portanto, são mais prováveis do que a maioria em um cache em algum lugar. Tudo isso conspira para tornar o armazenamento completo de um arquivo, incluindo seus metadados em seus dados, nos arquivos de Catálogo e Atributos estruturados em árvore B, uma vitória no desempenho geral. Mesmo uma carga útil de oito bytes que aumenta para 25 bytes não é uma preocupação, desde que ainda seja menor que o tamanho do bloco de alocação para armazenamento normal de dados e desde que tudo caiba em um nó de árvore B no arquivo de atributos que o sistema operacional deve ler na íntegra de qualquer maneira.
Há outras contribuições significativas para a redução na pegada de disco do Snow Leopard (por exemplo, a remoção de localizações desnecessárias e arquivos "designable.nib"), mas a compactação HFS + é de longe a mais tecnicamente interessante.