Thread LZ4 Kompression zwischen JS und Perl (Kompatibilitätsproblem?)
(21 answers)
Opened by styx-cc at 2020-04-19 01:22
Hallo,
also ich habe mich jetzt auch ein bisschen mehr damit beschäftigt, und muss sagen, dass man das bei mehreren Datenmengen auch unter 5mb bemerkt. Habe es allerdings nur mit gzip erfolgreich testen können. Code: (dl
)
1 <html> Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #!/usr/bin/perl -w use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser); use lib 'module'; use WebDB; use JSON; use IO::Compress::Gzip qw(gzip $GzipError); #use IO::Uncompress::Gunzip qw(gunzip $GunzipError); use MIME::Base64; my $cgi = new CGI; my $compress = $cgi->param("compress"); my $result; my $result->{checkstring} = "Mein Teststring."; my @array = WebDB::get_hasharray("SELECT * FROM exercises"); $result->{data} = \@array; my $json = to_json($result, {pretty => 1}); my $output; my $unziped; if( $compress ){ print $cgi->header( -type=>'application/octet-stream', -encoding=>'gzip' ); #print $cgi->header( -type=>'text/plain', -encoding=>'gzip' ); gzip \$json, \$output, or die "gzip failed: $GzipError\n"; $output = encode_base64($output); #gunzip \$output, \$unziped, or die "gzip failed: $GzipError\n"; } else{ print $cgi->header( -type=>'application/json' ); $output = $json; } print $output; Mit Komprimierung sind es 460 KB und 520ms Ohne Komprimierung sind es 6 MB und 1200ms Das ist ein super Performance schub und den werde ich in Zukunft in meinen Projekten einfließen lassen. Danke. :) Mit LZ4 habe ich auch lange probiert, leider jedoch auch ohne Erfolg. komisch kommt mir das Ergebnis vor was Perl hier im Response zurückliefert. Ich habe folgendes aus Link: https://github.com/pierrec/node-lz4 getestet: Code: (dl
)
1 <script type="text/javascript" src="/path/to/lz4.js"></script> Und wenn man sich mal output in der Console anschaut, ist das ja nicht das was perl für den selben string (data) liefert.!? Vielleicht liegt da der Hund begraben. Ich probiere noch weiter. Wäre super wenn du hier auch die Lösung posten würdest wenn du eine hast. :) Vielen Dank und viele Grüße Last edited: 2020-04-19 19:13:14 +0200 (CEST) |