Escolha do Kraken pela Sony não teve só a ver com a capacidade de compressão.

A compressão é claramente essencial, mas num sistema que pretende performance, tão importante como a compressão, é… a descompressão!

A compressão de ficheiros é extremamente relevante no sentido que ela poupa espaço em disco. No entanto, uma vez em memória, os ficheiros tem de estar totalmente descomprimidos, o que quer dizer que a compressão não toma relevância aí.

Mas há mais dados a se ter em conta, pois ao se ter mais compressão, apesar dos ganhos de espaço no disco serem claros, e de a transferência do disco ser maior ao transportar mais dados reais no mesmo número de MB lidos, mais compressão obriga a maior poder de descompressão, e acima de tudo a que a mesma possa ocorrer em tempo útil.

O Zlib tornou-se um standard por conseguir elevadas taxas de compressão, que conseguem ser descomprimidas em tempo útil.

Para vermos as diferenças, vamos comparar o Zlib com outros compressores da mesma família, todos eles livres de royalties e passiveis de uso standarizado na industria:



Pode parecer à partida que a descompressão não é relevante. Afinal as consolas referem ter descompressores que fazem isso em tempo real.

Mas tempo real não significa que entreguem os mesmos dados no mesmo tempo. Uma maior capacidade de descompressão permite mais entrega no mesmo tempo. Daí que a diferença na velocidade de descompressão continua a ser relevante!

Na imagem de cima tempos vários compressores descompressores comuns no mercado, e criados para fazer o mesmo que o Zlib, funcionando naquilo que vulgarmente se denomina “Tempo real”. E como se percebe desde já, a taxa de compressão e de entrega de dados não é igual em todos.

O Zlib sendo a ferramenta mais comum, e o standard de mercado, está presente em todos os quadros de cima, sendo tomada como elemento comparador.

Assim ele é comparado com os seguintes compressores disponíveis para uso público:



Lzma
Kraken
Leviathan
Mermaid
Lz4hc
Selkie

Como se pode ver, todos estes compressores tem vantagens e desvantagens, sendo que claramente alguns são melhores que outros. Mas podemos ver igualmente que a compressão e a capacidade de descompressão são dois fatores distintos a se tomar em conta.

Se fossemos a ver, comparativamente ao Zlib que tomamos como base (100), teríamos os seguintes valores para estas alternativas:

Zlib Lzma Kraken Leviathan Mermaid Zl4hc Selkie
Compressão 100 140 130 140 115 90 101
Descompressão 100 12 400 250 833 936 1430
Média 100 76 265 195 474 513 765,5

Ou seja, se o objectivo fosse apenas a compressão, o LZMA ou o Leviathan seriam os escolhidos pois ofereciam compressão superior ao Zlib em até 40% adicionais.

Se o objectivo fosse a descompressão, o Mermaid, o Zl4hc e o Selkie, todos eles ofereciam uma capacidade de entrega de dados no mesmo tempo, esmagadoramente superior.



Mas o objectivo aqui foi o equilíbrio. Não só aumentar a compressão, como também aumentar a capacidade de entrega da descompressão, e nesse campo apenas o Kraken, o Leviathan, e o Mermaid cumpriam com esses requisitos.

O Mermaid elimina-se facilmente pois apesar de ser o mais rápido a descomprimir, apenas aumenta a compressão em 15%, não sendo por isso o mais interessante. O Leviathan é o que comprime mais, superando em 10% o Kraken. Mas no entanto a sua velocidade de descompressão é apenas de 2.5x superior ao Zlib, ao passo que o Kraken é 4x mais.

E nesse sentido, o Kraken, pelo equilíbrio apresentado, soava à melhor escolha.

É uma ferramenta que aumenta a compressão em média 30% face ao Zlib, mas que entrega os dados até 4x mais rápido. E quando a ideia é ter-se os dados comprimidos, mas ao mesmo tempo acessíveis na maior quantidade possível, no mesmo espaço de tempo, o Kraken é uma excelente opção.



error: Conteúdo protegido