【发布时间】:2015-05-07 07:15:07
【问题描述】:
我在使用 DotNetZip 库时遇到了一个奇怪的性能问题。
在应用程序(在 asp.net 下运行)中,我从数据库中读取一组文件,并将它们即时打包成一个 zip 文件供用户下载。
在我的开发笔记本电脑上一切正常。一个大约 10MB 的 zip 文件,默认压缩率大约需要 5 秒才能完成。但是,在客户的开发服务器上,压缩同一组文件大约需要 1-2 分钟。我什至经历了更长的时间,长达几分钟。压缩运行时 CPU 利用率为 100%,否则保持在 0% 左右,因此不是由于过载。
更有趣的是,在生产服务器上,大约需要 20 秒才能完成。
我应该从哪里开始寻找?
一些硬件规格:
我的笔记本电脑
在具有 2 个内核和 4GB 专用 RAM 的虚拟机上运行的开发环境。
- 酷睿 i5 M540 2.5GHz
- 8 GB 内存
- Win7
开发服务器
根据我的电脑上的属性对话框(可能是虚拟化的)
- 英特尔至强 5160 3GHz
- 540MB 内存
- Windows 2003 服务器
任务管理器报告单核
生产服务器
根据我的电脑上的属性对话框(可能是虚拟化的)
- 氙气 5160 3GHz
- 512MB 内存
- Windows 2003 服务器
任务管理器报告双核
更新 服务器在 VMWare 主机上运行。找到隐藏在任务栏中的 VMWare 图标。
【问题讨论】:
-
两台服务器都在运行病毒扫描程序,我的笔记本电脑也是如此。
-
不同病毒扫描程序? :-) 其他选项:服务器上的非本地文件(这些文件实际上并不在服务器上,它们可以从服务器访问并且它们在 LAN 中)
-
有多少个文件? 10? 100? 1000? 10,000? 1,000,000?
-
少于 100 个文件。在测试包中大约有 60 个。顺便说一句,现在意识到在开发服务器上相同的包包含大约 20 个文件并且大小只有一半......
-
尝试在 .NET 4.5+ 中使用 msdn.microsoft.com/en-us/library/…
标签: dotnetzip