ASP.net使用7z.dll压缩文件很慢..
最近在做一个导出功能,文件生成成功后,将文件压缩成1个文件提供下载.
因为导出的文件非常多,所以在这里压缩耗时非常久,但是在本地用好压压缩7z的格式只要两三秒..
这里是我的压缩跟解压缩的代码
public void Zip7(string directory, string targetFile ,string libFile)
{
SevenZip.SevenZipCompressor.SetLibraryPath(libFile);
SevenZip.SevenZipCompressor szip = new SevenZip.SevenZipCompressor();
szip.CompressDirectory(directory, targetFile);
}
public void UnZip7(string directory, string targetFile, string libFile)
{
SevenZip.SevenZipExtractor.SetLibraryPath(libFile);
SevenZip.SevenZipExtractor szip = new SevenZip.SevenZipExtractor(directory);
szip.ExtractArchive(targetFile);
}
引用了两个动态链接库7z.dll和SevenZipSharp.dll,在c#上面解压十几秒,ASP.net要二十几秒
然后压缩2000多个小文件要将近两分钟,而且这期间发布的计算机上w3wp.exe进程CPU 为100%.网上说是出现了死循环,有没有朋友能解析下我这里出了什么问题的..
------解决方案--------------------szip.CompressionMethod = CompressionMethod.Lzma;
szip.CompressionLevel = CompressionLevel.Fastest; //不知压缩是不是会快点呢?
不知道对不对,
这里有个多线程压缩
http://www.25175.com/200609/25175/25175_html/2010-12/4128.html
看看能不能帮助到你
------解决方案--------------------我感觉7Z基本就这速度,没问题的。
要不你试一下.NET自带的GZip, 速度很好,就是只能压文件,要把目录转换先