Apakah ada program kompresi atau pengarsipan untuk Windows yang juga melakukan deduplikasi? [Tutup]

12

Saya mencari program pengarsipan yang dapat melakukan deduplikasi (dedupe) pada file yang diarsipkan. Setelah membongkar arsip, perangkat lunak akan mengembalikan file apa pun yang dihapus selama proses kompresi.

Sejauh ini saya telah menemukan:

Adakah yang tahu ada yang lain?

Ini mungkin akan menjadi tambahan 7-zip yang luar biasa.

Larry Silverman
sumber

Jawaban:

12

Hampir semua pengarsip modern melakukan hal ini, satu-satunya perbedaan adalah bahwa mereka menyebut ini sebagai arsip "padat", karena dalam semua file digabungkan menjadi satu aliran sebelum dimasukkan ke algoritma kompresi. Ini berbeda dari kompresi zip standar yang mengkompres setiap file satu per satu dan menambahkan setiap file terkompresi ke arsip.

7-zip pada dasarnya secara efektif mencapai de-duplikasi. 7-Zip misalnya akan mencari file, akan mengurutkannya dengan jenis file dan nama file yang serupa sehingga dua file dengan tipe dan data yang sama akan ditempatkan berdampingan dalam aliran menuju algoritma kompresor. Kompresor kemudian akan melihat banyak data yang telah dilihatnya baru-baru ini dan kedua file tersebut akan melihat peningkatan besar dalam efisiensi kompresi dibandingkan dengan mengompresi file satu-per-satu.

Linux telah melihat perilaku yang sama untuk waktu yang lama melalui prevalensi format ".tgz" mereka (atau ".tar.gz" untuk menggunakan bentuk lengkapnya) karena tar hanya menggabungkan semua file ke dalam satu aliran (walaupun tanpa menyortir dan mengelompokkan file) dan kemudian mengompres dengan gzip. Apa yang terlewatkan ini adalah penyortiran yang dilakukan 7-zip, yang mungkin sedikit mengurangi efisiensi tetapi masih jauh lebih baik daripada hanya menggertak banyak file yang dikompresi secara individual bersama-sama seperti yang dilakukan zip.

Mokubai
sumber
pelajari sesuatu yang baru setiap hari. Saya tidak menyadari bahwa zip mengkompres setiap file secara terpisah tetapi setelah menjalankan beberapa tes di komputer saya saya menyadari bahwa Anda memang benar. sangat menarik, terima kasih!
CenterOrbit
7ip melakukan pekerjaan deduplikasi yang adil, tetapi juga dirancang untuk mengompres data yang tidak duplikat secara efisien, dan menggunakan banyak CPU dan memori untuk mencapainya, yang membuatnya menjadi cara yang sangat tidak efisien untuk mendupuplikasi data. Jika Anda mengompres dua file 100MB identik, akan butuh banyak masalah untuk mencoba dan mengompres file pertama secara efisien, dan hanya kemudian (jika ukuran kamus cukup besar) kompres file kedua sebagai duplikat dari yang pertama.
mwfearnley
Tidak gzip dengan .tar.gzhanya kompres blok yang relatif kecil (seperti 900KB) pada waktu yang sepenuhnya independen satu sama lain dan dengan demikian tidak memiliki kemampuan untuk mendupuplikasi dua file besar tetapi identik (misalnya, beberapa gambar 4MB)?
binki
Misalnya, 7z dapat menyimpulkan antara file besar tetapi gzip tidak: gist.github.com/binki/4cf98fb4f1f4aa98ee4a00edaf6048fa
binki
4

Tidak ada gunanya menggunakan deduplikasi dengan proses kompresi. Kebanyakan algoritma kompresi membuat apa yang disebut 'kamus' yang akan mencari bit data yang paling umum, atau digunakan kembali. dari sana hanya akan merujuk entri kamus daripada menulis seluruh "kata" lagi. Dengan cara ini sebagian besar proses kompresi sudah memotong data yang berlebihan atau duplikat dari semua file.

Misalnya jika Anda mengambil file 1 MB dan menyalinnya 100 kali dengan nama yang berbeda setiap kali (total ruang disk 100 MB), maka Anda mengompresnya dalam file zip atau zip, Anda akan memiliki file zip total 1 MB. Ini karena semua data Anda dimasukkan ke dalam satu entri kamus dan direferensikan 100 kali, yang hanya memakan sedikit ruang.

Ini adalah penjelasan yang sangat sederhana tentang apa yang terjadi, tetapi intinya tetap disampaikan dengan baik.

CenterOrbit
sumber
1
Karena ukuran kamus sangat terbatas untuk sebagian besar arsip kompresi, ini tidak berlaku untuk penggunaan sehari-hari. Coba ini dengan file 50MB dan ukuran terkompresi Anda akan berlipat ganda dengan dua file input yang identik.
Chaos_99
1
File zip, tidak seperti file 7zip, tidak mendukung deduplikasi di seluruh file. File zip kompres dan menyimpan setiap file secara terpisah, sehingga file duplikat hanya akan disimpan beberapa kali dalam arsip.
mwfearnley
1
Sementara 7zip mendukung deduplikasi di seluruh file, ia dirancang untuk menemukan dan mengkompresi kecocokan yang jauh lebih pendek. Algoritmanya jauh lebih lambat dan lebih banyak memori intensif daripada apa yang berpotensi untuk sesuatu yang dirancang untuk menemukan duplikasi data skala besar.
mwfearnley
4

7-Zip, zip, gzip dan semua arsip lainnya tidak mendeteksi area identik yang jauh dari satu sama lain, seperti hanya beberapa megabyte atau lebih, di dalam file yang sama atau ditempatkan pada posisi berbeda di dalam file yang berbeda.

Jadi tidak, pengarsipan normal tidak berkinerja sebaik exdupe dan lainnya, dalam beberapa sesi. Anda dapat melihat ini jika Anda mengompres beberapa mesin virtual atau hal lain.

Ian
sumber
1
Ini benar. Segera setelah volume data unik melebihi ukuran kamus kompresor, kompresi akan sia-sia. exdupe menawarkan kinerja yang unggul untuk volume data yang besar.
usr