आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप GZ को XZ में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। फ़ाइल एन्क्रिप्टेड होकर हमारे सर्वर तक जाती है, वहाँ बदली जाती है और काम पूरा होते ही मिटा दी जाती है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
GZ से XZ
कोई भी उस gzipped फ़ाइल को नहीं बदलता जो अभी खोलनी है। यहाँ पाठक ऐसी चीज़ देख रहा है जो जमा हो गई है — साल भर के rotated logs, compliance के लिए रखे nightly database dumps, कोई research dataset जो shelf पर पड़ी रहती है।
यही फ़र्क़ पूरा फ़ैसला है। अगर archive को कोई जल्दी में fetch और unpack करेगा, इसे वैसा ही छोड़ दीजिए। अगर यह cold storage में बैठकर लगभग कभी नहीं पढ़ी जाएगी, यह रूपांतरण लगभग मुफ़्त पैसा है।
रजिस्ट्री का नंबर ही पूरी व्याख्या है। Gzip, RFC 1952 (मई 1996), DEFLATE का इस्तेमाल करता है जिसकी history window 32 KB है। XZ, 2009 से, रजिस्ट्री में 64 MB तक की dictionary दर्ज करता है — दो हज़ार गुना ज़्यादा पहुँच।
यही वजह है कुछ इनपुट पर फ़ायदा भारी है और कुछ पर शून्य। साल भर के log lines में वही चालीस message template बार-बार दोहराए जाते हैं, और gzip हर एक को हज़ारों बार दोबारा खोजता है जबकि XZ इसे एक बार सीख लेता है।
संपीड़न का समय स्पष्ट क़ीमत है और सबसे कम मायने रखने वाली, क्योंकि यह एक बार किसी ऐसी मशीन पर चुकाई जाती है जो आपके इंतज़ार में नहीं है। XZ compress करने में gzip से बहुत धीमा है।
Decompression पर memory वह क़ीमत है जो असल फ़ैसला करती है और जिसे लोग चूक जाते हैं। Gzip को unpack करने के लिए सिर्फ़ 32 KB चाहिए; XZ को dictionary के अनुसार बड़ा buffer चाहिए। किसी router, embedded device या memory-capped container पर यही फ़र्क़ अंतर बनाता है।
दोनों फ़ॉर्मेट ठीक एक धारा संपीड़ित करते हैं, इसलिए न directory पता है। व्यवहार में `.gz` लगभग हमेशा `.tar.gz` है — नाम और paths रखने के लिए TAR के साथ gzip लिपटा हुआ।
देखने लायक़ मामला वह है जहाँ स्रोत tarball नहीं था। एक सादा `access.log.gz` एक साधारण फ़ाइल रखता है, और repack अब भी उसके इर्द-गिर्द TAR बनाता है, इसलिए जो लौटता है वह `access.log` वाली tarball है।
Gzip stream में मूल फ़ाइल नाम रखने का field होता है, इसीलिए `dump.gz` को Unix मशीन पर decompress करने से `dump.sql` वापस मिल सकता है। XZ के पास ऐसा कोई field नहीं है।
इसका दोनों सिरों पर व्यावहारिक नतीजा है — नतीजे को नाम दीजिए `something.tar.xz` और उसका मतलब भी वही रखिए, क्योंकि यह डाउनलोड की गई फ़ाइल जो एकमात्र label कभी रखेगी वही है।
दोनों फ़ॉर्मेट ख़ुद को verify करते हैं। Gzip stream एक CRC-32 और uncompressed length के साथ ख़त्म होता है; XZ stream अपनी check रखती है, डिफ़ॉल्ट रूप से CRC-64। दोनों मामलों में कटी हुई download decompression पर error देती है।
कोई भी यह नहीं बता सकता कि कौन-सी फ़ाइल ख़राब है, क्योंकि इस स्तर पर कोई फ़ाइल है ही नहीं। अगर आपको per-member integrity चाहिए, कोई stream compressor ग़लत आकार का है।
यह रूपांतरण आपके device पर नहीं चलता। फ़ाइल एन्क्रिप्टेड कनेक्शन से एक container में जाती है जो इन्हें चलाता है, और container का कोई outbound internet access नहीं।
हर job को memory-backed filesystem पर एक scratch directory मिलती है, और job ख़त्म होते ही मिटा दी जाती है। मुफ़्त तह 25 MB प्रति अपलोड फ़ाइल स्वीकार करती है।
BZ2 "gzip काफ़ी संपीड़ित नहीं कर रहा" का पारंपरिक जवाब है, और ज़्यादातर टेक्स्ट पर अब यह XZ से दोनों axis पर हारता है। इसकी बची खूबी memory वाली बात का उल्टा है — bzip2 900 KB तक के block में काम करता है।
तो चुनाव अनुपात के बारे में नहीं है। XZ चुनिए जब unpack करने वाली मशीन साधारण कंप्यूटर हो, BZ2 सिर्फ़ तब जब न हो — पुराना appliance, constrained container।
पहले एक फ़ाइल कीजिए और दोनों आकार देखिए। एक representative archive बाक़ी फ़ोल्डर के बारे में किसी rule of thumb से ज़्यादा भरोसेमंद बताता है, क्योंकि जवाब formats से नहीं contents से तय होता है।
फिर सिर्फ़ आकार नहीं, listing भी जाँचिए। `tar tJf` चलाकर entry count और paths GZ के मुक़ाबले तुलना कीजिए।
| GZ | XZ | |
|---|---|---|
| पूरा नाम | Gzip आर्काइव | XZ आर्काइव |
| फ़ाइल एक्सटेंशन | .gz, .tgz | .xz |
| मीडिया टाइप | application/gzip | application/x-xz |
| कंप्रेशन | बिना नुक़सान — कुछ छोड़ा नहीं जाता | बिना नुक़सान — कुछ छोड़ा नहीं जाता |
| पहली बार प्रकाशित | 1992 | 2009 |
| विनिर्देश | RFC 1952 | — |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | BZ2, ZIP | BZ2, 7Z |
कुछ नहीं खोता। GZ और XZ — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।
7-Zip और Keka GZ और XZ — दोनों पढ़ लेते है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
XZ एक बार में 8 MB पर काम करता है, जबकि GZ 32 KB पर: दोहराव को इसी दायरे के अंदर आना पड़ता है, तभी उसे दबाया जा सकता है। कंप्रेशन का फ़र्क़ वहीं से आता है, और अतिरिक्त गिनती का समय भी वहीं जाता है।
GZ 1992 में आया। यह RFC 1952 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
XZ 2009 से चला आ रहा है। xz, 7-Zip और Keka इस फ़ॉर्मेट को पढ़ लेते है।
GZ 1992 में आया और XZ 2009 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।
हाँ: इस कन्वर्ज़न को ऐसा सॉफ़्टवेयर चाहिए जो ब्राउज़र में चलता ही नहीं। फ़ाइल एन्क्रिप्टेड होकर हमारे सर्वर तक जाती है, काम पूरा होते ही मिटा दी जाती है, और नतीजा 60 मिनट बाद। वहाँ यह काम 7-Zip करता है, वह आर्काइवर, अपने कमांड-लाइन रूप में।
हाँ, 25 MB तक की फ़ाइलों के लिए रोज़ 100 कन्वर्ज़न तक। यह एक सीमा इसलिए है कि यह कन्वर्ज़न ऐसे सर्वर पर चलता है जिसका ख़र्च हम उठाते हैं। इसके अलावा यहाँ कुछ भी सीमित नहीं है, और वॉटरमार्क किसी भी हाल में नहीं लगता। यह सीमा इसलिए है कि 7-Zip को चलने के लिए हमारी कोई मशीन चाहिए।
नहीं। XZ वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है। फ़ाइलें बाइट-दर-बाइट वैसी ही निकलती हैं। जो नहीं बचता वह है वह सब जो कंटेनर उनके *बारे में* जानता था, न कि जो उसके *भीतर* था — कोई पासवर्ड, और कुछ फ़ॉर्मेट में असली अनुमतियाँ और तारीख़ें।
कुछ नहीं खोता। GZ और XZ — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।