الصفحة الرئيسية » howto » لماذا يعتبر Zip Able قادر على ضغط ملفات Single أفضل من ملفات متعددة ذات المحتوى نفسه؟

    لماذا يعتبر Zip Able قادر على ضغط ملفات Single أفضل من ملفات متعددة ذات المحتوى نفسه؟

    القدرة على ضغط ملفاتنا بحيث يكون من الأسهل مشاركتها و / أو نقلها يمكن أن تجعل حياتنا الإلكترونية أسهل بكثير ، لكن في بعض الأحيان قد نشهد نتائج تحجيم غريبة أو غير متوقعة بعد ضغطها. لماذا هذا؟ إن وظيفة SuperUser Q & A اليوم تحتوي على إجابات لأسئلة القارئ المرتبك.

    تأتي جلسة الأسئلة والأجوبة اليوم مقدمة من SuperUser-a subdivision of Stack Exchange ، وهي مجموعة مجتمعية مدفوعة من مواقع Q & A.

    الصورة مقدمة من جان إتيان مين دو بويرييه (فليكر).

    السؤال

    يريد قارئ SuperUser sixtyfootersdude معرفة سبب قدرة zip على ضغط ملفات مفردة أفضل من ملفات متعددة بنوع واحد من المحتوى:

    افترض أن لدي 10،000 ملفات XML وتريد إرسالها إلى صديق. قبل إرسالها ، أود ضغطها.

    الأسلوب 1: عدم ضغط Them

    النتائج:

    الأسلوب 2: Zip كل ملف بشكل منفصل وإرساله ملفات XML Zip 10،000

    أمر:

    النتائج:

    الطريقة الثالثة: إنشاء ملف مضغوط واحد يتطابق مع كافة ملفات XML 10،000

    أمر:

    النتائج:

    الطريقة الرابعة: وصل الملفات إلى ملف مفرد و Zip It

    أمر:

    النتائج:

    الأسئلة

    • لماذا أحصل على نتائج أفضل بشكل كبير عندما أقوم فقط بسحب ملف واحد?
    • كنت أتوقع الحصول على نتائج أفضل بشكل كبير باستخدام الطريقة الثالثة بدلا من الطريقة الثانية ، لكنني لا. لماذا هذا?
    • هل هذا السلوك محدد للرمز البريدي؟ إذا حاولت استخدام Gzip ، فهل أحصل على نتائج مختلفة?

    معلومات إضافية

    البيانات الوصفية

    تشير إحدى الإجابات المقدمة إلى أن الاختلاف هو بيانات تعريف النظام المخزنة في ملف zip. لا أعتقد أن هذا يمكن أن يكون كذلك. لاختبار ذلك ، قمت بما يلي:

    الملف المضغوط الناتج هو 1.4 ميغابايت. هذا يعني أنه لا يزال هناك حوالي 10 ميغابايت من المساحة غير المبررة.

    لماذا يكون zip قادرًا على ضغط ملفات مفردة أفضل من ملفات متعددة بنوع واحد من المحتوى نفسه?

    الاجابة

    مساعدي SuperAser آلان Shutko و Aganju لديك الجواب بالنسبة لنا. أولاً ، ألان شوتكو:

    يعتمد ضغط Zip على الأنماط المتكررة في البيانات المراد ضغطها ، ويحسن الضغط كلما كان الملف أطول ، حيث يمكن العثور على أنماط أطول وأطول.

    مبسطة ، إذا ضغطت ملفًا واحدًا ، فإن القاموس الذي يرسم أكواد (قصيرة) إلى أنماط (أطول) موجود بالضرورة في كل ملف zip ناتج ؛ إذا قمت بضغط ملف طويل واحد ، فسيتم "إعادة استخدام القاموس" وينمو أكثر فعالية في جميع المحتويات.

    إذا كانت ملفاتك متشابهة قليلاً (مثل النص دائمًا) ، فإن إعادة استخدام "القاموس" تصبح فعالة للغاية والنتيجة هي ملف zip إجمالي أصغر بكثير.

    تليها الإجابة من Aganju:

    في zip ، يتم ضغط كل ملف على حدة. العكس هو ضغط قوي, أي ، يتم ضغط الملفات معاً. يستخدم 7-zip و Rar الانضغاط الصلب بشكل افتراضي. لا يمكن لـ Gzip و Bzip2 ضغط ملفات متعددة ، لذلك يتم استخدام القطران أولاً ، ويكون له نفس تأثير الضغط الصلب.

    بما أن ملفات xml لها بنية متشابهة (وربما محتوى مشابه) ، إذا تم ضغط الملفات معًا ، فسيكون الضغط أعلى.

    على سبيل المثال ، إذا كان الملف يحتوي على السلسلة ""ووجد الضاغط بالفعل هذه السلسلة في ملف آخر ، فإنه سيتم استبداله بمؤشر صغير إلى المطابقة السابقة. إذا لم يستخدم الضاغط ضغطًا ثابتًا ، فسيتم تسجيل التواجد الأول للسلسلة في الملف على هيئة حرفي, وهو أكبر.


    هل لديك شيء تضيفه إلى الشرح؟ الصوت قبالة في التعليقات. هل ترغب في قراءة المزيد من الإجابات من مستخدمي Stack Exchange الآخرين المحترفين بالتكنولوجيا؟ تحقق من موضوع المناقشة الكامل هنا.