C#의 Unix 아카이브에 대한 다중 스레드 설정

개요

XZ, Bzip2Lzip은 Linux에서 일반적입니다. 블록 구조로 인해 여러 스레드로 압축될 수 있습니다. Aspose.ZIP API는 압축 시 여러 CPU 코어를 활용할 수 있도록 ‘CompressionThreads’ 속성을 제공합니다. 2개 이상으로 설정하면 멀티 코어 압축이 필요합니다. 하나만 남겨두면(기본 옵션) 단일 CPU 코어로 압축됩니다.

XZ 멀티스레드 압축

XzArchiveSettingsCompressionThreads 속성이 있습니다. 다음 코드 예제에서는 XzArchive 인스턴스를 사용하여 파일을 압축하는 방법을 보여줍니다.

단계: C#으로 멀티 스레드 압축 XZ 아카이브 만들기

  1. 압축된 데이터를 쓰기 위해 FileMode.Create를 사용하여 XZ 아카이브에 대한 파일 스트림을 엽니다.
  2. FileMode.Open을 사용하여 소스 파일(data.bin)을 열고 압축할 데이터로 설정합니다.
  3. 다음을 지정하여 XzArchiveSettings의 인스턴스를 생성합니다.
    • 무결성 검증을 위해 CheckType을 Crc32로 합니다.
    • 멀티스레드 압축의 경우 CompressionThreads가 4로 설정됩니다.
  4. 위에서 생성한 설정을 전달하여 XzArchive의 인스턴스를 생성합니다.
  5. SetSource를 사용하여 압축할 소스 파일을 할당합니다.
  6. Save 메소드를 사용하여 압축된 XZ 아카이브를 저장합니다.
 1(FileStream xzFile = File.Open("archive.xz", FileMode.Create)) 사용
 2{
 3    (FileStream 소스 = File.Open("data.bin", FileMode.Open, FileAccess.Read)) 사용
 4    {
 5        var settings = new XzArchiveSettings() { CheckType = XzCheckType.Crc32, CompressionThreads = 4 };
 6        (var archive = new XzArchive(설정)) 사용
 7        {
 8            archive.SetSource(소스);
 9            archive.Save(xzFile);
10        }
11    }
12}

Bzip2 멀티스레드 압축

Bzip2SaveOptionsCompressionThreads 속성이 있습니다. 다음 코드 예제에서는 Bzip2Archive 인스턴스를 사용하여 파일을 압축하는 방법을 보여줍니다.

단계: C#을 통해 최대 압축 및 멀티스레딩 기능을 갖춘 Bzip2 아카이브 생성< /strong>

  1. 압축된 출력을 저장하기 위해 FileMode.Create를 사용하여 Bzip2 아카이브에 대한 파일 스트림을 엽니다.
  2. 압축되지 않은 데이터를 읽기 위해 FileMode.Open 및 FileAccess.Read를 사용하여 소스 파일(data.bin)을 엽니다.
  3. Bzip2Archive의 인스턴스를 생성하고 SetSource 메서드를 사용하여 압축할 소스 파일을 할당합니다.
  4. Save 메서드를 사용하여 데이터를 Bzip2 아카이브로 압축하고 다음을 전달합니다.
    • Bzip2SaveOptions(9)는 최대 압축 수준을 설정합니다.
    • 멀티스레드 압축의 경우 CompressionThreads를 4로 설정합니다.
 1    using (FileStream bz2File = File.Open("archive.bz2", FileMode.Create))
 2    {
 3        using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
 4        {
 5            using (Bzip2Archive archive = new Bzip2Archive())
 6            {
 7                archive.SetSource(source);
 8                archive.Save(bz2File, new Bzip2SaveOptions(9) { CompressionThreads = 4 });
 9            }
10        }
11    }

Lzip 멀티스레드 압축

XzArchiveSettingsCompressionThreads 속성이 있습니다. 다음 코드 예제에서는 XzArchive 인스턴스를 사용하여 파일을 압축하는 방법을 보여줍니다.

단계: C#을 통한 사용자 지정 사전 크기 및 멀티스레딩을 사용하여 Lzip 아카이브 만들기 1. FileMode.Create를 사용하여 Lzip 아카이브에 대한 파일 스트림을 열어 압축된 출력 파일을 생성합니다. 2. 압축되지 않은 데이터를 읽기 위해 FileMode.Open 및 FileAccess.Read를 사용하여 소스 파일(data.bin)을 엽니다. 3. 사전 크기를 16777216바이트(16MB)로 지정하고 CompressionThreads = 4로 멀티스레딩을 활성화하여 LzipArchiveSettings의 인스턴스를 생성합니다. 4. 위에 정의된 설정을 사용하여 LzipArchive 인스턴스를 생성합니다. 5. SetSource를 사용하여 압축할 소스 파일을 할당합니다. 6. Save 메서드를 사용하여 아카이브를 압축하고 저장하고 출력 Lzip 파일 스트림을 전달합니다.

 1    using (FileStream lzFile = File.Open("archive.lz", FileMode.Create))
 2    {
 3        using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
 4        {
 5            var settings = new LzipArchiveSettings(16777216) { CompressionThreads = 4 }
 6            using (LzipArchive archive = new LzipArchive(settings))
 7            {
 8                archive.SetSource(source);
 9                archive.Save(lzFile);
10            }
11        }
12    }

모든 샘플에는 4개의 스레드가 사용됩니다.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.