Overview

Çoğu sıkıştırma algoritması başlangıçta tek çekirdekli işlemciler için tasarlanmış olsa da, çok çekirdekli çağ, hızlanma için önemli bir potansiyel sunuyor. Aspose.ZIP, belirli arşiv formatları için çok çekirdekli optimizasyon sağlayarak bunu kullanır.

BZIP2, LZIP ve XZ Arşivlerini Paralelleştirme

Blok tabanlı doğaları nedeniyle belirli arşiv formatları için paralelleştirme etkinleştirilmiştir. Aspose.ZIP, program düzeyinde ortak çok çekirdekli sıkıştırma yaklaşımını kullanarak bunu kullanır. Kullanıcılar, sıkıştırma için kullanılan iş parçacığı sayısını setCompressionThreads(int) yöntemi aracılığıyla kontrol edebilir. Bu değer birden büyük olarak ayarlandığında daha hızlı sıkıştırma için birden fazla CPU çekirdeği kullanılacaktır.

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");
    }

Örnek 1’de Bzip2Archive sınıfını kullanarak bir Bzip2 arşivi oluşturmayı gösteriyor. Öncelikle archive.setSource("data.bin") yöntemini kullanarak sıkıştırılacak kaynak dosyayı belirliyoruz. Daha sonra çeşitli sıkıştırmalar yapılıyor. Sıkıştırma akışlarının sayısı da dahil olmak üzere seçenekler Bzip2SaveOptions nesnesi kullanılarak yapılandırılabilir. Son olarak arşiv, archive.save("archive.bz2", options)
yöntemi kullanılarak belirtilen seçeneklerle kaydedilir. İkinci örnekte, arşivi oluşturmadan önce xz formatı için sıkıştırma parametrelerini yapılandırıyoruz. Bu yapılandırma, istenen sıkıştırma akışı sayısını belirttiğimiz XzArchiveSettings nesnesi kullanılarak yapılır. Daha sonra bu ayarlar geçilerek yeni bir XzArchive oluşturulur. Bunu takiben, kaynak dosya ("data.bin") sıkıştırma kaynağı olarak ayarlanır ve arşiv, archive.save("archive.xz") kullanılarak kaydedilir. yöntemi
Üçüncü örnekte, LzipArchiveSettings nesnesini kullanarak bir LZ arşivi oluşturmayı gösteriyoruz. Öncelikle LZMA sıkıştırmasının kullandığı sözlüğün boyutunu ayarlıyoruz. Daha sonra thread sayısını 4 olarak ayarlıyoruz. Bundan sonra bir LzipArchive nesnesi oluşturup LzipArchiveSettings nesnesini yapıcıya aktarıyoruz. Son olarak arşivlenecek dosyayı belirliyoruz ve arşivi kaydediyoruz.

7Z Arşivlerinde LZMA2 Sıkıştırma ve Çoklu İş Parçacığı Oluşturma

7z biçimindeki sıkıştırma yöntemlerinden biri olan LZMA2 , çok iş parçacıklı sıkıştırmayı destekler. Önceki arşiv formatlarına benzer şekilde, setCompressionThreads(int) yöntemiyle kullanılan iş parçacığı sayısını kontrol edebilirsiniz.

    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");
    }
  • Sıkıştırma Ayarları: SevenZipLZMA2CompressionSettings nesnesini kullanarak sıkıştırma ayarları oluşturarak başlıyoruz. Bu örnekte sıkıştırma akışlarının sayısı 4 olarak ayarlanmıştır.
  • Giriş Ayarları: Daha sonra, bir SevenZipEntrySettings nesnesi oluşturulur ve daha önce tanımladığımız sıkıştırma ayarları atanır. Bu adım, arşivdeki her bir kayıt için sıkıştırmayı yapılandırır.
  • Oluşturma. Arşiv: Tüm ayarlar yerindeyken bir SevenZipArchive nesnesi oluşturuyoruz ve ona giriş ayarlarını iletiyoruz. Bu arşiv, kaynak dosyaya karşılık gelen "first.bin" adında tek bir giriş içerecektir. "data.bin".
  • Arşivi Kaydetme: Son olarak, oluşturulan arşiv, save kullanılarak "result.7z" olarak kaydedilir. ("result.7z") yöntemi.

Paralel Sıkıştırmayla ZIP Arşivlemeyi Hızlandırın

Aspose.ZIP’teki önceki arşiv formatları için blok veya algoritma düzeyinde daha hızlı işlemeye yönelik paralelleştirme uygulandı. Ancak ZIP arşivleri benzersiz bir avantaj sunar: kaydetme sırasında giriş düzeyinde paralelleştirme. Bunu etkinleştirmek için ZIP arşivini kaydederken bir ParallelOptions nesnesinin örneğini oluşturun.

    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);
    } 

Bu kod, arşiv oluşturmayı optimize etmek için paralel sıkıştırmayı kullanır ve "C:\Veri" klasöründeki tüm dosyalardan "archive.zip" adında bir ZIP arşivi oluşturur.

Java API için Desteklenen Diğer Aspose.ZIP Özellikleri

Java’daki Aspose.ZIP kitaplığıyla, ZIP dosyası belgeleriyle ilgili çeşitli görevleri sorunsuz bir şekilde gerçekleştirebilirsiniz. İster formatları dönüştürmeye, dosyaları birleştirmeye, içerikleri düzenlemeye veya veri çıkarmaya ihtiyacınız olsun, Aspose.ZIP, işlemlerinizi kolaylaştırmak için kapsamlı işlevsellik sağlar. iş akışını artırın ve üretkenliği artırın.

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: