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:
-
Pisahkan
bigfile
dalam potongan. -
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