Định dạng lưu trữ / nén nào?


8

Zip, Rar, 7z, Gzip, BZip2, Tar, v.v ... Tôi nghe 7z là hương vị của tháng, tại sao? Là nó tốt nhất cho tất cả các tình huống hoặc có sự lựa chọn tốt hơn cho các tình huống cụ thể.

Hoặc có thể trình lưu trữ tệp thực tế, ví dụ WinZip, WinRar, 7Zip, v.v. (trái ngược với định dạng) có tác dụng lớn hơn?

Trong câu trả lời của bạn, bạn có thể mô tả loại cân bằng tốc độ / nén mà định dạng được đề cập của bạn sử dụng.

Vui lòng cung cấp liên kết đến bất kỳ bài kiểm tra thực nghiệm nào sao lưu câu trả lời của bạn.

Bối cảnh: Tôi cần sao lưu một chỉ mục tìm kiếm tùy chỉnh tạo ra khoảng 3000 tệp tương đối nhỏ (ít hơn 10MB), mỗi tệp chứa rất nhiều dữ liệu lặp đi lặp lại.

(Như Wikipedia thông thường có một bài viết liên quan nhưng phần so sánh hiệu suất là ngắn gọn.)

Cảm ơn

Câu trả lời:


14

Nén, Gzip, Bzip, Bzip2 không dành cho việc lưu trữ nhiều tệp. Họ chỉ nén tập tin duy nhất. Để lưu trữ chúng thường được sử dụng với TAR. Vấn đề với TAR là nó không có bảng chỉ mục . Nó chỉ tốt nếu bạn có kế hoạch khôi phục lại toàn bộ . Nếu bạn đang mong đợi rằng bạn chỉ cần khôi phục số lượng tệp được chọn giới hạn, hãy quên TAR. Để lấy tệp cuối cùng từ tar.gzhoặc tar.bz2lưu trữ, bạn phải giải nén và xử lý tất cả . Trong trường hợp zip, rar hoặc 7-zip, nó sẽ chuyển đến bảng chỉ mục, bỏ qua vị trí liên quan của kho lưu trữ và chỉ xử lý các tệp có liên quan.

Ok, TAR ra, để lại cho bạn ZIP, RAR và 7-ZIP. Trong số ba, ZIP là phổ biến nhất, hầu hết mọi thứ đều hỗ trợ nó, nhiều ứng dụng có hỗ trợ tích hợp. Và nó rất nhanh. Mặt khác, 7-ZIP cũng có thể mang theo được, thư viện là LGPL và có tốc độ nén tốt hơn nhiều so với hai cái khác, đi kèm với chi phí tiêu tốn nhiều CPU hơn. RAR là kẻ thua cuộc thực sự ở đó, không nén lớn, cũng không thực sự di động, cũng không nhanh.

EDIT: có vẻ như tùy chọn tốt nhất sẽ là 7-ZIP, nhưng với phương pháp nén bzip2. Bằng cách này, bạn sẽ không gặp phải nhược điểm của TAR, nhưng bạn vẫn có thể tận dụng hỗ trợ đa lõi bzip2. Xem bài viết này.


Thông tin tuyệt vời, cảm ơn. Tôi đã thấy TAR khi chơi với Linux nhưng chưa bao giờ nhìn kỹ.
Tro

Tôi sẽ không đồng ý về rar. Nén là tốt (so với gzip ít nhất) và tốc độ có vẻ tốt trong các trường hợp sử dụng của tôi. Một điều tôi thích về rar là nó có thể xử lý nội dung truyền phát hoặc các tệp riêng lẻ và cho phép bạn tự động đưa dấu thời gian vào tên tệp ...
Dscoduc

10

Đề nghị đọc:

Nén tệp trong kỷ nguyên đa lõi (Jeff Atwood aka CodingHorror, tháng 2 năm 2009)

Tôi đã chơi xung quanh một chút với nén tệp một lần nữa, khi chúng tôi tạo ra một số tệp sao lưu rất lớn hàng ngày trên Stack Overflow.

Chúng tôi đang sử dụng phiên bản 64-bit 7zip mới nhất (4,64) trên máy chủ cơ sở dữ liệu của chúng tôi. Tôi không phải là một fan hâm mộ lớn của lõi kép trên máy tính để bàn, nhưng nó không phải là một bộ não cho máy chủ. CPU càng nhiều lõi càng tốt! Máy chủ này có hai CPU lõi tứ, tổng cộng 8 lõi và tôi hơi nản khi phát hiện ra rằng cả RAR và 7zip dường như không sử dụng nhiều hơn 2.

Tuy nhiên, ngay cả khi nó chỉ sử dụng 2 lõi để nén, thuật toán 7zip có hiệu quả đáng kinh ngạc và đã phát triển trong vài năm qua để có tốc độ nhanh đáng nể. Tôi đã từng đề xuất RAR trên Zip, nhưng với hiệu quả tăng lên của 7zip và thực tế là nó miễn phí và RAR thì không, đó là lựa chọn hợp lý bây giờ.

Và liên quan đến các thuật toán:

Tại sao bzip2 có thể hoạt động nhanh hơn 7zip? [...] Bzip2 sử dụng nhiều hơn 2 lõi CPU để song song hóa công việc của nó.


Cảm ơn các liên kết. Chúng tôi chắc chắn biết quan điểm của Jeff dựa trên kinh nghiệm thực tế!
Tro

4

Đó không phải là tất cả về hiệu quả và tốc độ. Chắc chắn chúng rất quan trọng và bạn có thể xem điểm chuẩn cho những điểm đó và chọn một cách khôn ngoan từ các tùy chọn (mặc dù tôi khuyên bạn nên thực hiện một số điểm chuẩn đơn giản của riêng bạn với dữ liệu của riêng bạn trên máy chủ của riêng bạn). Nhưng việc lưu trữ chắc chắn sẽ dẫn đến một lúc nào đó truy cập lại dữ liệu của bạn (nếu không thì tại sao không xóa nó?). Hoặc có thể nhiều năm sau, bạn sẽ không truy cập dữ liệu, mà là bên thứ ba. Chọn một cái gì đó sẽ có xung quanh khi bạn cần truy cập dữ liệu và một cái gì đó mà mọi người nhận ra. Cá nhân tôi sử dụng 7zip, nhưng khi tôi lưu trữ các tập tin người khác có thể cần tôi sử dụng zip. Họ biết điều đó, rất nhiều công cụ có thể xử lý nó. Nó có thể không hoàn toàn nhanh hoặc khá nhỏ, nhưng nó giúp với yếu tố con người.


Điểm tốt. Chỉ mục tìm kiếm này sẽ được trích xuất dữ liệu trực tiếp từ các tệp nén nhất định. Đó là lý do tại sao tôi quan tâm nếu có bất kỳ định dạng nào cung cấp hiệu suất nén / giải nén có thể định cấu hình. Vì vậy, tôi đang xem xét nhiều hơn về khía cạnh nén sau đó lưu trữ cho khía cạnh tương lai.
Tro

3

lzma dường như thực hiện rất tốt cả về tỷ lệ nén và tốc độ.

Trong http://tukaani.org/lzma/benchmark điểm chuẩn sau đây , cài đặt nhanh nhất cho lzma cho thời gian nén nhanh hơn đáng kể so với tùy chọn bzip2 nhanh nhất, trong khi vẫn cho phép nén tốt hơn tùy chọn bzip2 chậm nhất:

    tỷ lệ bzip2 lzmash
    nhanh nhất 35,8% 31,7%       
    chậm nhất 34,0% 25,4%

    thời gian bzip2 lzmash  
    nhanh nhất 1m 26s 0m 58s  
    chậm nhất 2m 37s 12m 20s

    * Nén cài đặt đầy đủ OpenOffice.org 1.1.4 cho Linux (203 MB) 

Nó hoạt động đặc biệt tốt với dữ liệu nhị phân, nhưng tôi nghĩ rằng tôi đã đọc một số điểm chuẩn của văn bản thuần túy trong đó bzip2 vượt trội hơn nó.

Trang người đàn ông lzma đáng đọc:

   lzma  provides  notably  better compression ratio than bzip2 especially
   with files having other than plain text content. The other advantage of
   lzma  is fast decompression which is many times quicker than bzip2. The
   major disadvantage is that achieving  the  highest  compression  ratios
   requires  extensive  amount of system resources, both CPU time and RAM.
   Also software to handle LZMA  compressed  files  is  not  installed  by
   default on most distributions.

Tôi cũng vậy cho đến tuần trước khi ai đó đề xuất nó cho một trong những câu hỏi về Lỗi Máy chủ của tôi. Nó trông ấn tượng, chỉ đáng để điều tra hiệu suất với văn bản đơn giản, nếu bạn sẽ sử dụng nó cho điều đó.
Guy C

LZMA là tên của thuật toán được sử dụng trong 7-zip.
vartec

2

Hãy xem mục Wikipedia này . Về phía dưới, "So sánh hiệu quả". Nó sẽ cung cấp cho bạn tỷ lệ phần trăm nén và thời gian thực hiện. Tất cả những con số đó sẽ thay đổi (tốc độ khôn ngoan) dựa trên tốc độ của máy đang được sử dụng, dung lượng bộ nhớ, v.v.

Nhiều điểm chuẩn nén hơn:


Cảm ơn, nhưng tôi đã đọc nó và nghĩ rằng nó hơi ngắn gọn (xem quan điểm của tôi trong câu hỏi). Bạn có biết bất kỳ bài kiểm tra chi tiết hơn trong các kịch bản khác nhau?
Tro

Đã thêm một vài liên kết mà tôi hy vọng cung cấp thêm thông tin.

2

So sánh zip, 7z, rar với hai trường hợp

Nó phụ thuộc vào chính xác những gì bạn đang nén, nhưng nói chung 7z sử dụng nhiều bộ xử lý tốt hơn và bản thân định dạng nén 7z mang lại khả năng nén cao hơn zip và đôi khi cao hơn rar (mặc dù rar và 7z gần như tương đương, nhưng rar 'miễn phí ...)

Các xét nghiệm của tôi vài tháng trước đã cho kết quả như sau:

Nén một tệp cơ sở dữ liệu truy cập 10 MB duy nhất:

Database.mdb 17,240,064 (original)
Database.zip  1,634,794 (Regular zip, 11:1)
Database.rar    262,212 (RAR compression, 66:1)
Database.7z     195,678 (7-zip compression, 88:1)

Nén một thư mục chứa hơn chín nghìn tệp thuộc các loại khác nhau (903,488KB) và có được những thứ sau (đây là sự kết hợp của mã nguồn và tất cả các công cụ xung quanh nó cho phần mềm đang được phát triển):

Type   Time  Size (KB)  Compression
ZIP    7:28   247,529   3.7:1
RAR    8:15   222,232   4.1:1
7z    10:49   181,633   5.0:1

Đối với mục đích thời gian, đây là trên Core2 Duo, 2GHz, RAM 1GB và ổ cứng giá rẻ.

Vì vậy, 7z đã cải thiện đáng kể tỷ lệ nén trong hai trường hợp tôi đã thử nghiệm ở trên và ngoài zip, và thậm chí còn được cải thiện trên rar, nhưng 7z chắc chắn là chậm hơn. Không đáng kể như vậy, nhưng đủ để được lưu ý.

-Adam


Bài kiểm tra tốt đẹp. Mà nén MDB là rất lớn. Tôi chỉ nhận được 4 đến 1 trên các tệp từ chỉ mục nhị phân 100k mà tôi đã thử nghiệm. Tôi đoán nó cho thấy tầm quan trọng của việc kiểm tra bằng cách sử dụng các tệp / dữ liệu tương tự như những gì hệ thống của bạn sẽ sử dụng.
Tro

Vâng, các tệp MDB đều là lông tơ và không có chất. Một tệp nhị phân sẽ nhận được ít hơn (vì nó sử dụng tất cả 8 bit, trong khi các tệp văn bản sử dụng ít hơn 6 bit) và rất có thể sẽ không có nhiều sự trùng lặp xảy ra trong đó. Luôn luôn quan trọng để kiểm tra mặc dù. Bạn có thể may mắn hơn khi chơi với các cài đặt nén - đôi khi bạn có thể tối ưu hóa nó cho việc sử dụng và trở nên tốt hơn so với các cài đặt tiêu chuẩn cung cấp.
Adam Davis

0

Tôi mới cài đặt dar (nhưng chưa có cơ hội chơi với nó). Nó tương tự như tar với nén gzip hoặc bzip2, với khả năng bổ sung để chia kho lưu trữ thành nhiều phần và tính toán chẵn lẻ để nếu một hoặc nhiều phần bị hỏng, nó có thể được xây dựng lại từ các tệp chẵn lẻ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.