Pergunta

Ela costumava ser que a compressão de disco foi usado para aumentar o espaço de armazenamento em detrimento da eficiência, mas estávamos todos em sistemas de processador único naquela época.

Estes dias, há núcleos extra em torno de potencialmente fazer o trabalho de descompressão em paralelo com o processamento de dados.

Para I / O aplicações encadernados (particularmente ler processamento de dados seqüencial pesado) poderia ser possível para aumentar o rendimento de apenas ler e escrever dados compactados no disco.

Alguém tem alguma experiência para apoiar ou rejeitar esta conjectura?

Foi útil?

Solução

Tenha cuidado para não confundir disco tempos de busca e leitura de disco taxas. Leva milhões de ciclos de CPU (5-10 milissegundos ou 5-10 milhões de nanossegundos) para procurar o caminho certo em um disco rígido (HDD). Uma vez que você estiver lá, você pode ler dezenas de megabytes de dados por segundo, assumindo baixa fragmentação. Para drives de estado sólido (SSD), os tempos de busca são mais baixos (35,000-100,000ns) do que HDDs.

Quer ou não os dados são compactados no disco, você ainda tem que procurar. A questão torna-se, é (leitura de disco tempo para dados comprimidos + o tempo de descompressão) <(disco ler tempo para dados não compactados). Descompressão é relativamente rápido, uma vez que equivale a substituir um sinal curto, com um mais longo. No final, ele provavelmente se resume a forma como os dados foram comprimido e quão grande era, em primeiro lugar. Se você estiver lendo um arquivo 2 KB comprimido em vez de um original de 5 KB, não é provavelmente vale a pena. Se você estiver lendo um arquivo de 2MB comprimido em vez de um original de 25 MB, ele provavelmente é.

Medida com uma carga de trabalho razoável.

Outras dicas

Sim! Na verdade, os processadores são tão ridiculamente rápido agora que ele mesmo faz sentido para a memória. (IBM faz isso, eu acredito.) Eu acredito, algumas das máquinas de ferro grandes correntes até mesmo fazer compressão no cache da CPU.

Sim, isso faz sentido. No Windows sistema operacional baseado em NT é que é amplamente aceito que, por vezes, permitindo a compressão NTFS pode ser mais rápido do que desativá-lo precisamente por essa razão. Isto tem sido verdade há anos e multicore só deve torná-lo mais verdadeiro.

Eu acho que também depende de quão agressivo sua compressão é vs como IO obrigado você é.

Por exemplo, o recurso de compactação de linha do DB2 é direcionada para aplicação dependente IO: armazéns de dados, sistemas de informação, etc. Ele usa um algoritmo baseado em dicionário e não é muito agressivo - resultando em compressão de 50-80% dos dados (tabelas , índices no armazenamento, bem como quando em memória). No entanto -. Também tende a velocidade de consulta-se em cerca de 10%

Eles poderiam ter ido com muita compressão mais agressivo, mas, em seguida, teria tomado um acerto de desempenho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top