7-जिप को और तेज कैसे करें


35

मैं आमतौर पर 7-ज़िप से अधिक WinRAR का उपयोग करता हूं क्योंकि यह तेज है और संपीड़न के साथ केवल थोड़ा कम कुशल है। मैंने अलग-अलग फ़ाइल प्रकारों और आकारों पर कुछ परीक्षण किए और उनकी सामान्य संपीड़न और उनके सर्वश्रेष्ठ संपीड़न पर 7-ज़िप और WinRAR डिफ़ॉल्ट सेटिंग्स की तुलना की, और बहुत सारे मामलों में WinRAR 50% तेजी से और कुछ में वास्तव में 100% तेज था। लेकिन, मुझे FOSS अधिक पसंद है। तो यहाँ मेरे सवाल हैं:

  1. क्या 7-ज़िप स्पीड-अप बनाने का कोई तरीका है? मुझे यह पसंद है कि कम से कम WinRAR की गति के बराबर हो
  2. क्या 7-ज़िप में रिकवरी सेगमेंट बनाने का एक तरीका है, जैसे आप WinRAR में कर सकते हैं? मुझे कोई दिखाई नहीं दिया, लेकिन मुझे लगता है कि यह एक कमांड लाइन बात हो सकती है।
  3. मैंने प्रत्येक के नवीनतम स्थिर संस्करण (7-ज़िप के साथ 4-डॉट-कुछ) का उपयोग करके WinRAR और 7-ज़िप का परीक्षण किया। 9.x बीटा रिलीज संपीड़न पर काफी तेज है?

मैं WinRAR में एक तुलनीय सेटिंग में तेजी से बात कर रहा हूं, न केवल न्यूनतम संपीड़न को कम करने के लिए।

अगर यह मायने रखता है, तो मैं 4 जीबी डीडीआर 3 रैम के साथ एक क्वाड कोर इंटेल आई 7 720 (1.6 गीगाहर्ट्ज) / (2.8 गीगाहर्ट्ज), और 7-ज़िप का 64-बिट संस्करण और ड्यूल-बूट डेबियन x64 5.0.4 और विंडोज 7 का उपयोग करता हूं। होम।


1
# 2 के बारे में - 7-ज़िप में वर्तमान में "रिकवरी रिकॉर्ड" या "ईसीसी" क्षमता का कोई प्रकार नहीं है। आपको QuickPar / MultiPar या ICE ECC जैसे 3 पार्टी सॉफ्टवेयर की आवश्यकता होगी, लेकिन तब यह संग्रह का हिस्सा नहीं है।
अफ्रीकी

जवाबों:


36

यदि आपको 7-ज़िप 9.13 बीटा मिलता है तो आप आर्काइव प्रकार को LZMA2 में बदल सकते हैं और इस प्रकार आप जितने चाहें उतने थ्रेड का उपयोग करने में सक्षम हो सकते हैं, हालाँकि मेमोरी का उपयोग अभूतपूर्व रूप से बढ़ जाता है।

बीटा स्थापित करें, जिस सामग्री को आप संग्रह करना चाहते हैं, उस पर राइट-क्लिक करें, फिर 7-ज़िप कंटेंट मेनू के अंतर्गत "संग्रह में जोड़ें ..." पर क्लिक करें और आपको नीचे दी गई विंडो के समान कुछ मिलेगा। संपीड़न विधि के तहत बाईं ओर आपको "LZMA2" ढूंढना चाहिए जो आपको थ्रेड्स की संख्या को बदलने की अनुमति देगा जो कि थोड़ा और नीचे एक विकल्प होगा।

इसमें> 2 कोर प्रोसेसर पर बहुत अधिक प्रदर्शन बढ़ने की संभावना है क्योंकि यह आपके सिस्टम में बेहतर रूप से सक्षम हो सकता है, और सामान्य संपीड़न विधि केवल 2 थ्रेड्स को अधिकतम संभाल सकती है।

"/ 1" आप छवि में थ्रेड्स चयन बॉक्स की संख्या के दाईं ओर देखते हैं, आपके सिस्टम में प्रोसेसर की संख्या है और इस प्रकार थ्रेड्स की अनुशंसित संख्या है। मेरा i7 एक क्वाड कोर प्रोसेसर है लेकिन हाइपरथ्रेडिंग है (जो वास्तव में यहाँ btw की मदद करता है) तो यह "/ 8" के रूप में दिखाता है

वैकल्पिक शब्द


Anandtech.com मल्टी-कोर और मल्टी-थ्रेडेड सीपीयू में पाए जाने वाले प्रदर्शन में सुधार में बेंचमार्क की मदद करने के लिए 7-ज़िप का उपयोग कर रहा है, जो अन्यथा इस पीढ़ी के अधिकांश सॉफ्टवेयर में अधिक सैद्धांतिक है।
किमी '13:11

5
LZMA2 को सक्षम करने के लिए कमांड लाइन आर्ग क्या है?
djangofan

@ मोंकुबाई: मेरे कार्यालय में i7 4c-8t में, मैं LZMA2 मोड में 7-ज़िप रन पूर्ण 8-कोर प्राप्त नहीं कर सकता जो कुछ भी सेट किया जा रहा है। केवल विधि की अनुमति देता है यह सभी 8-सूत्र चलाता है BZip2 एल्गोरिदम (ड्रॉप-डाउन मेनू से) जिसका कम संपीड़न अनुपात है।
एडवर्ड

@ आप किस संस्करण का उपयोग कर रहे हैं? 9.20 पर अगर मैं उस सूची से lzma2 का चयन करता हूं तो मुझे 8 कोर तक का उपयोग करने का विकल्प मिलता है।
Mokubai

2
@ मोकूबाई 9.20 आधिकारिक संस्करण। और ग्राफिक यूआई के साथ कुछ भी गलत नहीं है, यह अभी भी सेटिंग पैनल में 8/8 कोर पैरामीटर प्रदर्शित करता है लेकिन जब प्रसंस्करण होता है तो वास्तव में केवल <20% सीपीयू का उपयोग होता है। मैंने इस मुद्दे के लिए एसयू में एक त्वरित शोध किया, लेकिन अभी तक उस अजीब के कारण का पता नहीं चला है। बस इतना पता है कि अगर मैं कमांड लाइन 7z का उपयोग पैरामीटर के साथ करता हूं जैसे -m0 = lzma2 -mmt = 8 तो कंप्रेशन ~ 100% सीपीयू को पूर्ण करता है लेकिन एक बार जब मैं GUI पर स्विच करता हूं, तो यह सिंगल-थ्रेड मोड या कुछ इस तरह से लौटता है ... CPU का उपयोग बहुत ही अक्षम तरीके से करें (<20%)।
एडवर्ड

31

जैसा कि प्रत्येक थ्रेड एक ही समय में कई फ़ाइलों को संपीड़ित करने के लिए लगता है, सबसे बड़ी बात यह है कि आप बहुत बड़ी ज़िप नौकरियों के प्रदर्शन को बढ़ाने के लिए थ्रेड्स को 1 पर सेट कर सकते हैं, यह सुनिश्चित करने के लिए कि आपकी हार्ड ड्राइव एक बार में एक फ़ाइल की तलाश करेगी।

हम -mmt=off7-ज़िप कमांड लाइन को जोड़कर अपने सभी दैनिक ज़िप-बैकअप प्रक्रियाओं पर प्रदर्शन में सुधार करते हैं । "विज़ुअल एसवीएन रिपॉजिटरी" का हमारा बैकअप, जो कई छोटी फाइलों से बनाया गया है, 50 से 60 मिनट के बीच ले जा रहा था।

के साथ -mmt=off, हम अब हमेशा पाँच मिनट से कम समय में करते हैं! और, इन 50 मिनटों के दौरान, हार्ड ड्राइव मांगने के कारण हमारे सभी सर्वर बहुत धीमे थे। अब, उन पांच मिनटों के दौरान सब कुछ बहुत तेज रहता है।

मशीन पर आप जो कुछ भी करते हैं, उसके लिए हार्ड ड्राइव गतिविधि हमेशा आपके सीपीयू की क्षमता से धीमी होगी। आप समानांतर गतिविधियों को अक्षम करके और हार्ड ड्राइव को आपकी फ़ाइलों को एक-एक करके पढ़ते हैं और सुनिश्चित करते हैं कि आप डिस्क प्रदर्शन को बढ़ा सकते हैं।

इसके अलावा डिस्क 1 से पढ़ना और डिस्क 2 पर अपने ज़िप को लिखना बेहतर है, क्योंकि भौतिक सिर पढ़ने से लिखने के लिए स्थानांतरित नहीं होता है।

अपने मशीन के प्रदर्शन को बनाए रखते हुए अधिकतम ज़िप गति प्राप्त करने के लिए नमूना लाइन:

start "" /wait /belownormal c:\Progra~1\7-Zip\7z.exe a -tzip -mx=1 -mmt=off t:\backup.zip d:\folderToBackup\*

D:और T:2 अलग-अलग शारीरिक डिस्क हैं


5
कमाल है कि यह सुझाए गए उत्तर के बिल्कुल विपरीत है, लेकिन वास्तव में सही है। मैंने अभी एक एकल थ्रेड का उपयोग करके एक संग्रह ऑपरेशन को 12 घंटे से 2 से नीचे जाने दिया।
एन जोन्स

2
सच। इसने मेरे लिए भी काम किया। संभवतः यह समझ में आता है क्योंकि वह उपयोग कर रहा है -mx=1(जो लगभग कोई संपीड़न नहीं है)। यदि आप संपीड़ित नहीं कर रहे हैं, तो अधिकांश काम एचडीडी द्वारा किया जाता है। यदि आप -mx=9प्रोसेसर सेट करते हैं, तो फ़ाइल को संपीड़ित करने के लिए वास्तव में काम करने की आवश्यकता है। मुझे इसे आज़माने की ज़रूरत होगी, लेकिन अड़चन क्या है (HDD या CPU), यह बेहतर या बुरा हो सकता है।
डिएगो जैंसिक

9
यह उत्तर एक उम्र बढ़ने की तकनीक के लिए बहुत विशिष्ट है। SSDs के साथ यह कोशिश करना शायद उपयोगी नहीं है क्योंकि समय बहुत कम है। यादृच्छिक IOPS की अड़चन कम होने की संभावना है। आपका मामला बहुत खास था क्योंकि आप बहुत कम संपीड़न का प्रदर्शन कर रहे थे। मूल रूप से आप एक फाइल कॉपी कर रहे थे। तो हाँ, कताई HD पर अनुक्रमिक पहुंच स्पष्ट रूप से एक विजेता है। आमतौर पर 7zip usecases सीपीयू बाउंड होगा, न कि आईओ बाउंड। उसके लिए सभी CPU कोर का उपयोग करना आवश्यक है। लेकिन एक समान स्थिति वाले लोगों के लिए, आपकी सलाह बहुत मूल्यवान है।
dss539

1
का उपयोग -mmt=offकरने के साथ भी तेज है -m0=lzma2 -mx=5। (बिना -mmt=off: वास्तविक 1m27.811s, उपयोगकर्ता 2m4.976s, sys 0m3.729s । साथ -mmt=off: वास्तविक 1m18.896s, उपयोगकर्ता 1m17.160s, sys 0m1.661s )
22

मुझे थ्रेड्स कम करने के लिए बहुत धीमा लगता है। 20 जीबी की फ़ाइलों के लिए 1 थ्रेड के साथ यह लगभग 2 एमबी / सेकंड की गति से प्रसंस्करण कर रहा था। 16 थ्रेड्स के साथ यह 16 एमबी / सेकंड की गति से प्रसंस्करण कर रहा था।
लाइटयर बज़

0

मेरे द्वारा हाल ही में उपयोग किए गए सभी संपीड़न एल्गोरिदम (ज़िप, RAR, 7z, टार / bzip2) I / O बाध्य हैं, सीपीयू बाध्य नहीं हैं। मेरे मैक लैपटॉप पर MenuMeters देखना निरंतर डिस्क गतिविधि दिखाता है, लेकिन केवल 50% या उससे कम CPU गतिविधि।

इस प्रकार, संपीड़न / अपघटन को गति देने का तरीका आपकी डिस्क को गति देना है। यह हमेशा संभव नहीं है।

मेरा "समाधान" यह है कि मैं कुछ और कर रहा हूं जबकि मैं कुछ कंप्रेस कर रहा हूं। :-)


2
यदि डिस्क I / O मैट की समस्या थी, तो इसका मतलब यह होगा कि WinRAR किसी तरह डिस्क से 7Zip की तुलना में तेजी से अपने सिस्टम पर पढ़ने में सक्षम है ... यह मेरे लिए संभावना नहीं है।
foraidt

1
यह संभव है कि WinRAR स्मार्ट डिस्क I / O का उपयोग करे; मुझे पता है कि Info-ZIP का ज़िप अपने बहुत छोटे I / O बफ़र्स द्वारा बाधित है। लेकिन हाँ, यह संपीड़न एल्गोरिदम के बीच एक अंतर हो सकता है।
संजोएं

7z निश्चित रूप से तेज मोड में भी I / O- बाउंड नहीं है।
सर्ज बॉर्श

आपके द्वारा बताई गई अधिकांश विधियां समानांतर में संपीड़ित नहीं होती हैं, इसलिए आपके सीपीयू के केवल 1 कोर का उपयोग किया जाता है इसलिए 2 कोर मशीन पर आपको 50% मिलता है। मुझे डर है कि आपके मैक पर सीपीयू बंधा हुआ है, न कि आईओ बाउंड और अधिकांश मैक में एसएसडी है जो वास्तव में डिस्क से ग्रस्त नहीं हैं। यदि आप ऐसा करने का विकल्प चुनते हैं तो 7z समानांतर में संपीड़ित कर सकता है। (टार, जिप, bzip, gzip, xs आम तौर पर नहीं)
मार्टिन

0

मेरी कंपनी में, हम 7-ज़िप (4.52 बीटा) के पुराने संस्करण के साथ काम कर रहे हैं, और हम निम्नलिखित कमांड चला रहे हैं:

"C:\Program Files\7-Zip\7z.exe" a -mx7 -mmt -sfx -xr!*.<exclude_extension> <destination>.exe <source_directory>\* 

यह ठीक काम कर रहा है, लेकिन सिर्फ नए संस्करण 16.04 (32-बिट) में अपग्रेड होने के बाद, प्रदर्शन में भारी गिरावट आई है, इसलिए मैंने पुराने संस्करण को वापस डाउनग्रेड करने का निर्णय लिया है।


0

जब आप इस उदाहरण जैसे कोड का उपयोग करते हैं, तो प्रदर्शन में सुधार करने के लिए एक और छोटी चाल:

$7zip = "$env:ProgramFiles\7-Zip\7z.exe"
set-alias sz $7zip
$FileZip = "$DiscoZip\temp\$TempFile"
foreach ($DirData in $ListDir) { $out7z = (sz a $FileZip $DirData) }

यदि संभव हो तो, सरणी में $ ListDir को छोटी, सबसे बड़ी से आकार द्वारा निर्देशिकाओं को सूचीबद्ध किया गया है। ऐसा इसलिए होता है क्योंकि प्रत्येक फोरचेक चक्र पर 7zip एक अस्थायी फ़ाइल बनाता है जो मूल एक की तुलना में बड़ी (या बड़ी) है, फिर उनके अंदर नई फ़ाइल जोड़ें। मैंने उन मामलों की कोशिश की है जिनमें दो या दो से अधिक निर्देशिकाएं होती हैं कुछ एमबी और एक बड़ी कई जीबी और समय की बचत कई मिनटों के क्रम में होती है।


मेरा मानना ​​है कि यह केवल मौजूदा संग्रह में फ़ाइलों को जोड़ने पर लागू होता है। एक साथ कई फ़ाइलों को जोड़ने पर, केवल एक अस्थायी फ़ाइल का उपयोग किया जाएगा। एक नया संग्रह बनाते समय, एक अस्थायी फ़ाइल का उपयोग बिल्कुल नहीं किया जाएगा।
डैनियल बी

-1

मेरा अनुमान है कि 7-ज़िप को तेज करना इसके संपीड़न / डी-कम्प्रेशन एल्गोरिदम को फिर से लिखे बिना असंभव है, किसी प्रकार का ट्वीक हो सकता है जो गति को बढ़ाता है लेकिन यह केवल 10 या 15% की वृद्धि की तरह होगा, बड़े पैमाने पर नहीं 50-100% वृद्धि जो आप देख रहे हैं।


6
सच नहीं है। आप डिफ़ॉल्ट सेटिंग्स को बदलकर 7-ज़िप को बड़े पैमाने पर गति दे सकते हैं। वास्तव में डिफ़ॉल्ट सेटिंग्स को सबसे छोटी फ़ाइल आकार (और सबसे धीमी संपीड़न एल्गोरिथ्म - BZip2) के लिए ट्यून किया जाता है। इसे जिप और LZMA संपीड़न में बदलकर "फास्टेस्ट" के लिए सेट किया गया है, यह इसे बड़े पैमाने पर तेज बनाता है।
NickG
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.