FreeToGenerate.com

أربع صيغ، مقيسة في متصفحك أنت، ومنها ما تقدّمه شبكتك فعلًا.

شيء تضغطه

يُقرأ الملف في متصفحك ويُضغط فيه. لا يُرفع شيء، ولهذا أيضًا لا حدّ لحجمه سوى ما يتّسع له جهازك.

الأحجام بعد الضغط

brotli
ما تقدّمه فعليًّا أكثر شبكات التوصيل. يكتبه HTTP br داخل ترويسة Accept-Encoding، أما اسم الصيغة هنا فهو brotli، وbr غير صالح ويرمي خطأً.
deflate
بيانات deflate داخل غلاف zlib، ويكلّف ثمانية بايتات ولو لم يكن هناك ما يُضغط.
deflate-raw
البيانات نفسها بلا غلاف البتة: بايتان زائدان فقط، وبلا مجموع تحقّق.
gzip
الصيغة التي تذكرها كل أدوات القياس. تكلّف حاويتها عشرين بايتًا، وهي أغلى الأربع.

يقوم بالضغط متصفحك نفسه عبر معيار Compression Streams، الذي يعرّف أربع صيغ بالضبط ويتيح لأي تنفيذ أن يرفض أيًّا منها.

متوفر أيضًا بلغات أخرى: English · Español · Português · Français

حساب حجم gzip: gzip وbrotli وdeflate

الصق أي شيء وانظر حجمه مضغوطًا بكل صيغة يعرف متصفحك إنتاجها، مع وضع رقم gzip في موضعه الصحيح.

ما حجم gzip؟

حجم gzip هو عدد البايتات التي يصير إليها الملف بعد الضغط، أي الرقم الذي يعبر الشبكة فعلًا، في مقابل ما يشغله الملف على القرص. وبهذه الوحدة تُكتب ميزانيات الأداء، لأن حزمة جافاسكربت حجمها 300 كيلوبايت وتنضغط إلى 80 تكلّف الزائر ثمانين.

يعمل الضغط بإيجاد التكرار، ولهذا تعطي الحيلة نفسها نتائج شديدة التفاوت باختلاف المحتوى: فالترميز وJSON يكرّران أنفسهما بلا انقطاع فينكمشان انكماشًا هائلًا، بينما النثر أقل تكرارًا بكثير فينكمش قليلًا. أما الصورة أو ملف zip فقد نُزع تكرارهما سلفًا ولن يكادا يتحركان.

تضغط هذه الصفحة ما تعطيها بكل صيغة يدعمها متصفحك وتعرض الأحجام جنبًا إلى جنب. وكل ذلك يجري داخل المتصفح، فلا يغادر جهازك شيء مما تلصقه أو تختاره.

طريقة الاستخدام

  1. الصق نصًّا أو اختر ملفًّا. كلاهما يصلح. ويُقرأ الملف محليًّا ولا يُرفع أبدًا، فلا يحدّ حجمه إلا ما يتّسع له جهازك.
  2. اقرأ الأحجام عبر الصيغ. يعطي كل صف الحجم المضغوط والنسبة إلى الأصل والبايتات الموفَّرة، والأصغر موسوم.
  3. وانظر ما رفضه متصفحك. يسمّي السطر أسفل الجدول أي صيغة لم يشأ متصفحك إنتاجها، فالمعيار يجيز للتنفيذ أن يدعم أقل من الأربع.

رقم gzip ليس الرقم الذي يُرسَل

تكاد كل أدوات القياس تذكر gzip وتقف عند ذلك، في حين أن شبكة التوصيل أمام أي موقع حديث تقدّم عادةً brotli، وهي خوارزمية أخرى بنتيجة أخرى، وأصغر باطّراد.

وبالقياس على ملفات هذا الموقع نفسها، خرج brotli أصغر من gzip بنسبة تتراوح بين 16 و28 بالمئة. وليس هذا فرق تقريب: فإن كانت ميزانيتك تقول مئة كيلوبايت مضغوطة وشبكتك تقدّم brotli، فأنت تقيس منذ البداية شيئًا لا ترسله، وتتشاءم بمقدار الخُمس.

ويعرّف معيار Compression Streams الذي تنفّذه المتصفحات أربع صيغ بالضبط: brotli وdeflate وdeflate-raw وgzip. وفي الأسماء فخّ، لأن HTTP لا يستعمل هذه الألفاظ: ففي ترويسة Accept-Encoding يُكتب brotli هكذا br، وطلب br من المتصفح بدل brotli يرمي خطأً بدل أن يضغط شيئًا.

الضغط قد يكبّر الملف

تغلّف كل صيغة مخرجها في حاوية، وللحاوية كلفة ثابتة. فضغط لا شيء إطلاقًا — دخلٌ فارغ — ينتج مع ذلك عشرين بايتًا من gzip، وثمانية من deflate، واثنين من deflate-raw، وواحدًا من brotli. وهذه هي الأرضية تحت كل قياس في هذه الصفحة.

وعلى دخل لا ينضغط تكون الكلفة صغيرة لكنها حقيقية: أعطِ عائلة deflate بايتات بلا نمط فيها يخرج المخرج أكبر من الدخل بثلاثة وعشرين بايتًا، وخمسة أخرى عن كل كتلة 64 كيلوبايت بعد الأولى، بينما يؤدي brotli العمل نفسه بأربعة. ولهذا كان ضغط ملف مضغوط سلفًا هدرًا، ولهذا يكون الخادم الذي يضغط صورة JPEG بـgzip قد أساء إلى الاستجابة قليلًا لا أحسن إليها.

والأثر العملي في الاستجابات الصغيرة: فاستجابة JSON حجمها مئتا بايت هي بالضبط الحالة التي قد تكلّف فيها الحاوية أكثر مما يوفّره الضغط، وستريك الأداة توفيرًا سالبًا حين يقع ذلك بدل أن تخفيه.

ما لا تستطيع هذه الصفحة إخبارك به

لا تستطيع إخبارك بعدد البايتات الذي سيرسله خادمك بالضبط. فللضغط مستويات جهد، ولا يكشف ضاغط المتصفح أيًّا منها: تأخذ ما يختاره التنفيذ، بينما قد تكون شبكة التوصيل مضبوطة أشدّ أو أخفّ. وتنفيذان صحيحان للصيغة نفسها ينتجان بحقٍّ حجمين مختلفين للدخل نفسه.

وهي كذلك تقيس ملفًّا واحدًا في كل مرة على انفراد. أما أحجام النقل الحقيقية فتتأثر بما إذا كانت الاستجابة تُضغط أصلًا دون عتبة ما، وبتأطير الاتصال نفسه، ومع كثرة الموارد الصغيرة بما إذا جُمعت أولًا: فعدة ملفات مضغوطة ككتلة واحدة تتفوق دائمًا تقريبًا على الملفات نفسها مضغوطةً منفردة، لأن التكرار بينها يصير متاحًا.

وقائمة الصيغ هي ما يدعمه متصفحك اليوم. ويذكر السطر أسفل الجدول ذلك بدل افتراضه، لأن المعيار يجيز صراحةً للتنفيذ أن يرفض صيغةً، والمتصفحات تفعل.

لماذا هي مجانية؟

يقوم بالضغط واجهة برمجية يملكها متصفحك أصلًا. لا يُرفع شيء مما تلصقه أو تختاره، ولا يُسجَّل شيء، ولا حساب عليك إنشاؤه.

بلا تسجيل، وبلا حدود، وبلا علامة مائية على أي شيء تنسخه.