lzss_vs_fast_lzss.pl 609 B

123456789101112131415161718192021222324
  1. #!/usr/bin/perl
  2. # Comparison of LZSS vs Fast-LZSS.
  3. use 5.036;
  4. use lib qw(../lib);
  5. use Compression::Util qw(:all);
  6. foreach my $file (__FILE__, $^X) {
  7. my $data = do { open my $fh, '<:raw', $file; local $/; <$fh> };
  8. my ($u1, $i1, $l1) = lzss_encode($data);
  9. my ($u2, $i2, $l2) = lzss_encode_fast($data);
  10. my $str1 = lzss_decode($u1, $i1, $l1);
  11. my $str2 = lzss_decode($u2, $i2, $l2);
  12. $str1 eq $data or die "error";
  13. $str2 eq $data or die "error";
  14. say "Uncompressed (LZSS vs Fast-LZSS): ", scalar(grep { defined } @$u1), " <=> ", scalar(grep { defined } @$u2);
  15. }