Alternativas mais rápidas do zlib [fechadas]

3

Gostaria de saber se existem versões mais rápidas do zlib com otimizações mais avançadas?

Se for possível otimizá-lo usando instruções SSE ou o compilador Intel C ++ ou algum truque patenteado anteriormente (eu sei que as patentes foram uma séria limitação durante o desenvolvimento do gzip / zlib), alguém se incomodou em implementar isso?

Estou especialmente interessado na velocidade de compactação, que tem um impacto direto nos serviços da web de alto desempenho que atendem a static & conteúdo dinâmico.

    
por BarsMonster 16.07.2010 / 03:04

3 respostas

2

Não é uma reconstrução, mas duas boas alternativas para o zlib são quicklz e fastlz. Ambos são muito rápidos em relação ao gzip -1, mas não atingem uma taxa de compactação tão boa. Para minha aplicação, o tamanho estava subindo 10-15%, mas a velocidade de compressão era 6x, portanto, uma troca muito boa.

É claro que nem é compatível com zlib, então pode não funcionar para você.

    
por 16.07.2010 / 22:32
3

Outra alternativa é a miniz biblioteca (domínio público, unlicense.org), que implementa a maior parte da API zlib em um único arquivo de origem C e lê / grava fluxos de dados compactados compatíveis com zlib. No nível de compressão 1, usa um compressor em tempo real que é extremamente rápido (um pouco mais lento que o minilzo, mas com maior compressão).

    
por 03.11.2012 / 09:30
3

Vários anos após essa pergunta ter sido feita pela primeira vez, alguns zlib x86_64 mais rápidos apareceram usando o tipo de otimização sugerido pelo BarsMonster:

Os autores de samtools (um conjunto de ferramentas para interagir com dados de seqüenciamento de alto rendimento) produziram uma comparação de velocidades zlib .

O zlib-ng coleta otimizações do zlib não no zlib da linha principal , mas pode não ser tão estável quanto o zlib da linha principal. Seu rastreador de problemas também é instrutivo como referência para outras acelerações conhecidas do zlib.

Recentemente, uma solicitação de solicitação que reivindica "acelerar o inflate_fast em até 1,5x em x86_64" (preenchendo e copiando 8 bytes de cada vez) foi feito mas não aceito na linha principal zlib. O patch que fornece esse trabalho também está tendo uma corrida instável sendo aceito no Chromium (veja este erro do Chromium e a revisão do Chromium , mas esperamos que o apresentador faça uma pausa para se afastar e recarregue porque de longe parece que o progresso estava sendo feito muito lentamente em uma situação complexa ...

    
por 28.12.2015 / 13:55