В наших собственных тестах 7-zip CLI (exe-файл) был самым быстрым на сегодняшний день.Звучит безумно, что приложение CLI превзошло бы все эти библиотеки .NET, но, к сожалению, это факт.
Если быть точным, я протестировал SharpCompress, SharpZipLib, DotNetZip, собственную реализацию .NET с использованием ZipFile и ZipArchive.Все они работали около 10-20 секунд для нашего тестового файла, но exe-процесс 7-zip обычно заканчивался через 7-8 секунд.
Вот пример кода, если вы решите использовать 7-zip:
private static void ExtractWith7Zip(string archivePath, string extractPath)
{
var info = new ProcessStartInfo
{
FileName = @"C:\Program Files\7-Zip\7z.exe",
Arguments = $"x -y -o\"{extractPath}\" \"{archivePath}\"",
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardOutput = true
};
Process.Start(info)?.WaitForExit();
}