Configuraci�n multiproceso para archivos Unix en C#

Descripci�n general

XZ, Bzip2 y Lzip son comunes en Linux. Gracias a su estructura de bloques se pueden comprimir en varios hilos.�La API Aspose.ZIP proporciona propiedades CompressionThreads para que todos utilicen varios n�cleos de CPU en compresi�n. Configurarlo en m�s de uno implica compresi�n multin�cleo; dejarlo as�, la opci�n predeterminada, conduce a la compresi�n con un solo n�cleo de CPU.

Compresi�n multiproceso XZ

Hay una propiedad CompressionThreads�en XzArchiveSettings. El siguiente ejemplo de c�digo muestra c�mo comprimir un archivo usando la instancia de XzArchive.

Pasos: Crear archivo XZ de compresi�n multiproceso mediante C#

  1. Abra una secuencia de archivos para el archivo XZ usando FileMode.Create para escribir los datos comprimidos.
  2. Abra el archivo fuente (data.bin) usando FileMode.Open y config�relo como los datos a comprimir.
  3. Cree una instancia de XzArchiveSettings, especificando:
    • CheckType como Crc32 para verificaci�n de integridad.
    • CompressionThreads establecido en 4 para compresi�n multiproceso.
  4. Cree una instancia de XzArchive, pasando la configuraci�n creada anteriormente.
  5. Utilice SetSource para asignar el archivo fuente para la compresi�n.
  6. Guarde el archivo XZ comprimido usando el m�todo Guardar
 1usando (FileStream xzFile = File.Open("archive.xz", FileMode.Create))
 2{
 3    usando (FileStream fuente = File.Open("data.bin", FileMode.Open, FileAccess.Read))
 4    {
 5        configuracin var = new XzArchiveSettings() { CheckType = XzCheckType.Crc32, CompressionThreads = 4 };
 6        usando (archivo var = nuevo XzArchive (configuracin))
 7        {
 8            archive.SetSource(fuente);
 9            archivo.Guardar(xzFile);
10        }
11    }
12}

Compresi�n multiproceso Bzip2

Hay una propiedad CompressionThreads�en Bzip2SaveOptions. El siguiente ejemplo de c�digo muestra c�mo comprimir un archivo usando la instancia Bzip2Archive.

Pasos: Cree un archivo Bzip2 con m�xima compresi�n y subprocesos m�ltiples mediante C#< /fuerte>

  1. Abra una secuencia de archivos para el archivo Bzip2 usando FileMode.Create para almacenar la salida comprimida.
  2. Abra el archivo fuente (data.bin) con FileMode.Open y FileAccess.Read para leer los datos sin comprimir.
  3. Cree una instancia de Bzip2Archive y utilice el m�todo SetSource para asignar el archivo fuente para la compresi�n.
  4. Utilice el m�todo Guardar para comprimir los datos en el archivo Bzip2, pasando:
    • Bzip2SaveOptions(9) para establecer el nivel m�ximo de compresi�n.
    • Establezca CompressionThreads en 4 para compresi�n multiproceso.
 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    }

Compresi�n multiproceso Lzip

Hay una propiedad CompressionThreads�en XzArchiveSettings. El siguiente ejemplo de c�digo muestra c�mo comprimir un archivo usando la instancia de XzArchive.

Pasos: Cree un archivo Lzip con un tama�o de diccionario personalizado y subprocesos m�ltiples mediante C# 1. Abra una secuencia de archivos para el archivo Lzip usando FileMode.Create para crear el archivo de salida comprimido. 2. Abra el archivo fuente (data.bin) con FileMode.Open y FileAccess.Read para leer los datos sin comprimir. 3. Cree una instancia de LzipArchiveSettings, especificando un tama�o de diccionario de 16777216 bytes (16 MB) y habilitando subprocesos m�ltiples con CompressionThreads = 4. 4. Cree una instancia de LzipArchive con la configuraci�n definida anteriormente. 5. Utilice SetSource para asignar el archivo fuente para la compresi�n. 6. Comprima y guarde el archivo usando el m�todo Guardar, pasando la secuencia del archivo Lzip de salida.

 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    }

En todas las muestras se utilizan cuatro hilos.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.