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#
- Abra una secuencia de archivos para el archivo XZ usando FileMode.Create para escribir los datos comprimidos.
- Abra el archivo fuente (data.bin) usando FileMode.Open y config�relo como los datos a comprimir.
- Cree una instancia de XzArchiveSettings, especificando:
- CheckType como Crc32 para verificaci�n de integridad.
- CompressionThreads establecido en 4 para compresi�n multiproceso.
- Cree una instancia de XzArchive, pasando la configuraci�n creada anteriormente.
- Utilice SetSource para asignar el archivo fuente para la compresi�n.
- 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 configuraci�n var = new XzArchiveSettings() { CheckType = XzCheckType.Crc32, CompressionThreads = 4 };
6 usando (archivo var = nuevo XzArchive (configuraci�n))
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>
- Abra una secuencia de archivos para el archivo Bzip2 usando FileMode.Create para almacenar la salida comprimida.
- Abra el archivo fuente (data.bin) con FileMode.Open y FileAccess.Read para leer los datos sin comprimir.
- Cree una instancia de Bzip2Archive y utilice el m�todo SetSource para asignar el archivo fuente para la compresi�n.
- 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.