LZ4 عبارة عن خوارزمية ضغط بدون فقدان البيانات، وتوفر سرعة ضغط أكبر من 500 ميجابايت/ثانية لكل مركز، وقابلة للتطوير باستخدام وحدة المعالجة المركزية متعددة المراكز. ويتميز بوحدة فك ترميز سريعة للغاية، تصل سرعتها إلى عدة جيجابايت/ثانية لكل نواة، وعادةً ما تصل إلى حدود سرعة ذاكرة الوصول العشوائي (RAM) في الأنظمة متعددة النواة.
يمكن ضبط السرعة ديناميكيًا، واختيار عامل "التسارع" الذي يستبدل نسبة الضغط للحصول على سرعة أكبر. على الجانب الآخر، يتم أيضًا توفير مشتق عالي الضغط، LZ4_HC، لتداول وقت وحدة المعالجة المركزية لتحسين نسبة الضغط. تتميز جميع الإصدارات بنفس سرعة إلغاء الضغط.
LZ4 متوافق أيضًا مع ضغط القاموس، سواء على مستويات API أو CLI. يمكنه استيعاب أي ملف إدخال كقاموس، على الرغم من استخدام الحجم النهائي البالغ 64 كيلو بايت فقط. يمكن دمج هذه الإمكانية مع Zstandard Dictionary Builder، من أجل تحسين أداء الضغط بشكل كبير على الملفات الصغيرة.
يتم توفير مكتبة LZ4 كبرنامج مفتوح المصدر باستخدام ترخيص BSD 2-Clause.
فرع | حالة |
---|---|
ديف |
يستخدم المعيار lzbench، من @inikep المجمع مع الإصدار 8.2.0 من مجلس التعاون الخليجي على Linux 64 بت (Ubuntu 4.18.0-17). يستخدم النظام المرجعي وحدة المعالجة المركزية Core i7-9700K بسرعة 4.9 جيجا هرتز (مع تعزيز توربو). يقوم المعيار بتقييم ضغط المرجع Silesia Corpus في وضع الخيط المفرد.
ضاغط | نسبة | ضغط | تخفيف الضغط |
---|---|---|---|
com.memcpy | 1.000 | 13700 ميجابايت/ثانية | 13700 ميجابايت/ثانية |
LZ4 الافتراضي (الإصدار 1.9.0) | 2.101 | 780 ميجابايت/ثانية | 4970 ميجابايت/ثانية |
لزو 2.09 | 2.108 | 670 ميجابايت/ثانية | 860 ميجابايت/ثانية |
كويك إل زي 1.5.0 | 2.238 | 575 ميجابايت/ثانية | 780 ميجابايت/ثانية |
لاذع 1.1.4 | 2.091 | 565 ميجابايت/ثانية | 1950 ميجابايت/ثانية |
معيار Z 1.4.0 -1 | 2.883 | 515 ميجابايت/ثانية | 1380 ميجابايت/ثانية |
إل زد إف v3.6 | 2.073 | 415 ميجابايت/ثانية | 910 ميجابايت/ثانية |
زليب انكماش 1.2.11 -1 | 2.730 | 100 ميجابايت/ثانية | 415 ميجابايت/ثانية |
LZ4 HC -9 (الإصدار 1.9.0) | 2.721 | 41 ميجابايت/ثانية | 4900 ميجابايت/ثانية |
زليب انكماش 1.2.11 -6 | 3.099 | 36 ميجابايت/ثانية | 445 ميجابايت/ثانية |
LZ4 متوافق أيضًا ومحسّن لوضع x32 ( -mx32
)، والذي يوفر أداءً إضافيًا للسرعة.
make
make install # this command may require root permissions
يدعم Makefile
الخاص بـ LZ4 اصطلاحات Makefile القياسية، بما في ذلك عمليات التثبيت المرحلية أو إعادة التوجيه أو إعادة تعريف الأوامر. وهو متوافق مع البنيات المتوازية ( -j#
).
يمكنك تنزيل LZ4 وتثبيته باستخدام مدير التبعيات vcpkg:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg.exe install lz4
يتم تحديث منفذ LZ4 في vcpkg بواسطة أعضاء فريق Microsoft والمساهمين في المجتمع. إذا كان الإصدار قديمًا، فيرجى إنشاء مشكلة أو سحب طلب على مستودع vcpkg.
تم تفصيل تنسيق ضغط الكتلة LZ4 الأولي ضمن lz4_Block_format.
يتم ضغط الملفات الطويلة أو تدفقات البيانات بشكل تعسفي باستخدام كتل متعددة، لتلبية متطلبات التدفق. يتم تنظيم هذه الكتل في إطار، محدد في lz4_Frame_format. يجب أيضًا أن تحترم الإصدارات القابلة للتشغيل المتبادل من LZ4 تنسيق الإطار.
بعيدًا عن المصدر المرجعي للغة C، قام العديد من المساهمين بإنشاء إصدارات من lz4 بلغات متعددة (Java وC# وPython وPerl وRuby وما إلى ذلك). يتم الاحتفاظ بقائمة بمنافذ المصدر المعروفة على صفحة LZ4 الرئيسية.
يتم تضمين معظم التوزيعات مع مدير الحزم الذي يتيح التثبيت السهل لكل من مكتبة liblz4
وواجهة سطر الأوامر lz4
.