نظرة عامة
في حين أن معظم خوارزميات الضغط تم تصميمها في الأصل للمعالجات أحادية النواة، فإن عصر النواة المتعددة يوفر إمكانات كبيرة للتسريع. يستفيد Aspose.ZIP من ذلك من خلال توفير تحسين متعدد النواة لتنسيقات أرشيف معينة.موازنة أرشيفات BZIP2 وLZIP وXZ
يتم تمكين الموازاة لبعض تنسيقات الأرشيف نظرًا لطبيعتها المتأصلة القائمة على الكتلة. يستفيد Aspose.ZIP من ذلك من خلال استخدام أسلوب ضغط مشترك متعدد النواة على مستوى البرنامج. يمكن للمستخدمين التحكم في عدد المواضيع المستخدمة للضغط عبر طريقة setCompressionThreads(int) . عند تعيين هذه القيمة على أكثر من واحد، سيتم استخدام مراكز وحدة المعالجة المركزية المتعددة لضغط أسرع.
Parallel compression to BZIP2
try (Bzip2Archive archive = new Bzip2Archive()) {
archive.setSource("data.bin");
Bzip2SaveOptions options = new Bzip2SaveOptions();
options.setCompressionThreads(4);
archive.save("archive.bz2", options);
}
Parallel compression to XZ
XzArchiveSettings settings = new XzArchiveSettings();
settings.setCompressionThreads(4);
try (XzArchive archive = new XzArchive(settings)) {
archive.setSource("data.bin");
archive.save("archive.xz");
}
Parallel compression to LZ
LzipArchiveSettings settings = new LzipArchiveSettings(16777216);
settings.setCompressionThreads(4);
try (LzipArchive archive = new LzipArchive(settings)) {
archive.setSource("data.bin");
archive.save("archive.lz");
}
يوضح المثال 1 كيفية إنشاء أرشيف Bzip2 باستخدام فئة Bzip2Archive. أولاً، نحدد الملف المصدر المراد ضغطه باستخدام طريقة archive.setSource(“data.bin”). بعد ذلك، يمكن تكوين خيارات الضغط المختلفة، بما في ذلك عدد تدفقات الضغط، باستخدام كائن Bzip2SaveOptions. أخيرًا، يتم حفظ الأرشيف بالخيارات المحددة باستخدام طريقة archive.save(“archive.bz2”, options).
في المثال الثاني، قمنا بتكوين معلمات الضغط لتنسيق xz قبل إنشاء الأرشيف. يتم هذا التكوين باستخدام كائن XzArchiveSettings، حيث نحدد العدد المطلوب من تدفقات الضغط. بعد ذلك، يتم إنشاء XzArchive جديد باستخدام هذه الإعدادات التي تم تمريرها كوسيطة. بعد ذلك، يتم تعيين الملف المصدر (“data.bin”) كمصدر للضغط، ويتم حفظ الأرشيف باستخدام طريقة archive.save(“archive.xz”).
في المثال الثالث، نوضح كيفية إنشاء أرشيف LZ باستخدام كائن LzipArchiveSettings. أولاً، قمنا بتعيين حجم القاموس الذي يستخدمه ضغط LZMA. بعد ذلك، قمنا بتعيين عدد المواضيع على 4. بعد ذلك، نقوم بإنشاء كائن LzipArchive وتمرير كائن LzipArchiveSettings إلى المُنشئ. أخيرًا، نحدد الملف المراد أرشفته ونحفظه في الأرشيف.
ضغط LZMA2 وتعدد مؤشرات الترابط في أرشيفات 7Z
إحدى طرق الضغط ضمن تنسيق 7z، LZMA2 ، تدعم الضغط متعدد الخيوط. كما هو الحال مع تنسيقات الأرشيف السابقة، يمكنك التحكم في عدد المواضيع المستخدمة باستخدام طريقة setCompressionThreads(int).
SevenZipLZMA2CompressionSettings compSettings = new SevenZipLZMA2CompressionSettings();
compSettings.setCompressionThreads(4);
SevenZipEntrySettings settings = new SevenZipEntrySettings(compSettings);
try (SevenZipArchive archive = new SevenZipArchive(settings)) {
archive.createEntry("first.bin", "data.bin");
archive.save("result.7z");
}
- إعدادات الضغط: نبدأ بإنشاء إعدادات الضغط باستخدام كائن SevenZipLZMA2CompressionSettings. في هذا المثال، تم تعيين عدد تدفقات الضغط على 4.
- إعدادات الإدخال: بعد ذلك، يتم إنشاء كائن SevenZipEntrySettings وتعيين إعدادات الضغط التي حددناها سابقًا. تعمل هذه الخطوة على تهيئة الضغط لكل سجل فردي داخل الأرشيف.
- إنشاء الأرشيف: مع وجود جميع الإعدادات في مكانها الصحيح، نقوم بإنشاء كائن SevenZipArchive ونمرر إليه إعدادات الإدخال. سيحتوي هذا الأرشيف على إدخال واحد يسمى "first.bin" والذي يتوافق مع الملف المصدر "data.bin".
- حفظ الأرشيف: وأخيرًا، يتم حفظ الأرشيف الذي تم إنشاؤه كـ "result.7z" باستخدام طريقة الحفظ ("result.7z").
تسريع أرشفة ملفات ZIP باستخدام الضغط المتوازي
تم تنفيذ التوازي من أجل معالجة أسرع على مستوى الكتلة أو الخوارزمية لتنسيقات الأرشيف السابقة في Aspose.ZIP. ومع ذلك، توفر أرشيفات ZIP ميزة فريدة: الموازاة على مستوى الدخول أثناء الحفظ. لتمكين ذلك، قم بإنشاء كائن ParallelOptions عند حفظ أرشيف ZIP.
try (Archive archive = new Archive()) {
archive.createEntries("C:\\Data");
ParallelOptions parOptions = new ParallelOptions();
parOptions.setParallelCompressInMemory(ParallelCompressionMode.Auto);
ArchiveSaveOptions options = new ArchiveSaveOptions();
options.setParallelOptions(parOptions);
archive.save("archive.zip", options);
}
يستخدم هذا الرمز الضغط المتوازي لتحسين إنشاء الأرشيف وإنشاء أرشيف ZIP باسم “archive.zip” من جميع الملفات الموجودة في المجلد “C:\Data”.
ميزات Aspose.ZIP الأخرى المدعومة لـ Java API
باستخدام مكتبة Aspose.ZIP في Java، يمكنك التعامل بسهولة مع المهام المتنوعة المتعلقة بمستندات الملفات المضغوطة. سواء كنت بحاجة إلى تحويل التنسيقات أو دمج الملفات أو تحرير المحتويات أو استخراج البيانات، فإن Aspose.ZIP يوفر وظائف شاملة لتبسيط سير عملك وتحسين الإنتاجية.
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for Java?
- Customers List
- Success Stories