GNU/Linux >> Belajar Linux >  >> Linux

Dukungan multithread di 7za

Menurut -m (Atur Metode kompresi) sakelar # ZipMultiThread - manual &dokumentasi 7ZIP, mt default ke on , jadi tidak perlu menentukannya sama sekali.

Namun, penerapan algoritme DEFLATE 7zip tidak mendukung multi-threading!

Seperti yang telah Anda temukan,

7za a archive.zip bigfile

hanya menggunakan satu inti.

Tapi .zip file kompres setiap file satu per satu. Saat mengompresi beberapa file, opsi multi-threading memampatkan satu file per inti sekaligus.

Cobalah dan Anda akan melihatnya

7za a archive.zip bigfile1 ... bigfileN

akan menggunakan semua N yang tersedia inti.

Jika Anda ingin mempercepat kompresi tunggal file, Anda memiliki dua pilihan:

  1. Pisahkan bigfile dalam potongan.

  2. Gunakan algoritme kompresi yang berbeda.

    Misalnya, penerapan algoritme BZip2 7zip mendukung multi-threading.

    Sintaksnya adalah:

    7za a -mm=BZip2 archive.zip bigfile
    

Selain itu, kesalahan sintaksis disebabkan oleh upaya Anda menggunakan Algoritma LZM untuk .zip wadah. Itu tidak mungkin.

Kemungkinan algoritme untuk .zip conatiners adalah DEFLATE(64), BZip2 dan tanpa kompresi.

Jika Anda ingin menggunakan Algoritma LZM, gunakan .7z wadah. Penampung ini juga menangani algoritme berikut:PPMd, BZip2, DEFLATE, BCJ, BCJ2, dan tanpa kompresi.


Ini adalah pertanyaan lama, dan bukan jawaban atas pertanyaan spesifik, tetapi jawaban atas semangat pertanyaan (Menggunakan semua inti untuk mengompresi format zip)

pigz (gzip paralel dengan opsi .zip)

pigz -K -k archive.zip bigfile txt

Ini akan memberi Anda file zip yang kompatibel 7x lebih cepat untuk tingkat kompresi yang sama.

Perbandingan cepat kompresor yang kompatibel dengan zip dan non-zip menggunakan inti tunggal dan banyak.

waktu dinding di i7-2600k untuk mengompresi file txt 1,0 GB di fedora 20

67s (120mb) 7za (zip,1 thread)
15s (141mb) 7za -mx=4 (zip,1 thread)
17s (132mb) zip (zip,1 thread)
 5s (131mb) pigz -K -k (zip,8 threads)
 9s (106mb) bsc (libbsc.com) (not zip,8 threads)
 5s (130mb) zhuff -c2 (not zip,8 threads)
 2s (149mb) zhuff (not zip,8 threads)

waktu dinding untuk mendekompresi

4.2s unzip -t
2.0s pigz -t
5.1s bsc d
0.5s zhuff -d

Linux
  1. Ekstraktor Universal?

  2. Linux – Kernel:Dukungan Namespaces?

  3. Status Dukungan Hidpi Di Xfce?

  1. Cara Menggunakan Unzip di Linux

  2. Kemas ulang file 7z ke file zip di linux

  3. Kompres file zip dengan kompresi lebih tinggi

  1. Cara Membuat Zip Banyak File di Linux

  2. Encoding File Zip?

  3. Program Kompresi Menampilkan Rasio Kompresi Langsung?