[Cascavel-pm] Compactar string
Agnaldo Macedo
agnaldo em starweb-software.com.br
Quinta Fevereiro 19 04:45:01 PST 2009
Nelson, rodou legal usando esse fragmento de código:
print "Content-Encoding: gzip \n\n";
my $xml_gziped = Compress::Zlib::memGzip( $xml );
print $xml_gziped;
E o principal, houve um ganho significativo.
Num teste simples, um XML com cerca de 766Kb caiu para 44Kb.
E tanto no server quanto no client (ambos com hardware modestos), o tempo
usado para compressão/descompressão dos dados foi insignicante.
----- Original Message -----
From: "Nelson Ferraz" <nferraz em gmail.com>
To: "Agnaldo Macedo" <agnaldo em starweb-software.com.br>; "Cascavel Perl
Mongers" <cascavel-pm em pm.org>
Sent: Thursday, February 19, 2009 8:07 AM
Subject: Re: [Cascavel-pm] Compactar string
> Tenho um script que gera uma string XML (string, não arquivo).
> Tal string é enviada a um servidor web.
> Porém, algumas dessas strings possuem um tamanho maior, gerando trafego.
>
> Existe algum módulo que permite compactar uma string e dar print da nova
> string (compactada) gerada?
Você pode tentar compactar a string (Compress::Zlib::memGzip) e enviar
um header "Content-Encoding: gzip".
use Compress::Zlib;
my $xml_gziped = Compress::Zlib::memGzip( $xml );
No catalyst, você faria alguma coisa assim:
$c->response->body( $xml_gziped );
$c->response->content_length( length( $c->response->body ) );
$c->response->content_encoding('gzip');
[]s
Nelson
Mais detalhes sobre a lista de discussão Cascavel-pm