Параллельное сжатие bzip2
Использование нескольких ядер ЦП для сжатия Bzip2
BZIP2 сжимает данные, разбивая их на блоки и обрабатывая каждый блок независимо. Aspose.ZIP предлагает функцию, которая позволяет использовать несколько ядер ЦП для параллельной обработки этих блоков, что значительно ускоряет процесс сжатия больших файлов.
По умолчанию сжатие является однопоточным, но с помощью Aspose.ZIP вы можете включить параллельную обработку, настроив свойство CompressionThreads. Вам просто нужно указать количество потоков, которые вы хотите использовать. Если вы установите для CompressionThreads значение больше единицы, Bzip2 задействует указанное количество ядер ЦП.
Зачем использовать многоядерное сжатие?
Использование всех доступных ядер ЦП особенно выгодно при работе с большими наборами данных или когда производительность является приоритетом. Такой подход сокращает время, необходимое для сжатия больших файлов, за счет распределения рабочей нагрузки между несколькими ядрами.
В следующем примере параметр
CompressionThreads настроен на использование всех доступных ядер на компьютере путем присвоения Environment.ProcessorCount
свойству CompressionThreads
.
1 using (Bzip2Archive archive = new Bzip2Archive())
2 {
3 archive.SetSource("data.bin");
4 archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads = Environment.ProcessorCount });
5 }