C#用SharpZipLib壓縮500M問題,,高手請進

vpdlsr 2009-03-18 11:50:30
當我壓縮超過500M時,網頁就跑service unavailable了,如果小一點的話就正常了,
我的壓縮功能是寫在一個類裡,每當有用戶要壓縮時我就會new 一個對象出來然後調用壓縮方法,
我是1M分段的慢慢壓的,有時w3wp這個進程占很大,導至有問題,我結束了又正常了,在事件日志時常報裝置空間不足BUG,已經困惑很久了望有高手解答
...全文
201 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vpdlsr 2009-03-24
  • 打赏
  • 举报
回复
哦,,是一個好辦法,,不過我不會用Queue,是用他來存對象嗎,然後執行
skison 2009-03-19
  • 打赏
  • 举报
回复
用队列

多用户同时操作,虽说是一点点压的,但是内存GC来不急释放,会驻留大量内存,峰值会很高,可能就会溢出。

队列就是说,做一个同时运行操作的限制,比如说20个,超过20个的先用Queue记录下来,排队执行

不过你这要压500M的东西,估计会很长时间,看是否可以做成这样: 当检测到当前有满20个压缩操作在执行时,直接提示用户,系统繁忙,请稍后。
vpdlsr 2009-03-19
  • 打赏
  • 举报
回复
我是用流的方式壓一点Flush一点,,做隊列是什么意思,現在我的做法是,多個人對同一個文件壓縮只有最新點壓宿的人壓其他的在等,如果多個人對不同的文件壓是可以的..問題就出來了,我懷疑是多個人對不同文件壓縮時出現了內存溢出,請問如何查看w3wp是那個功能占用率高啊
skison 2009-03-19
  • 打赏
  • 举报
回复
如果是采用本地临时文件的方式,在B/S中,多用户请求时,会出现磁盘不足

如果是内存流的方式,应压缩发送同步进行,压一点Flush一点,如果用户太多,可以做队列。
wuyq11 2009-03-18
  • 打赏
  • 举报
回复
分卷压缩文件
http://www.cnblogs.com/wuyong/archive/2006/10/10/525331.aspx
skison 2009-03-18
  • 打赏
  • 举报
回复
那个ZipInputStream是连接的FileSteam 还是其他什么流 是页面输出的OutputStream的话 网速慢会卡住
devilli 2009-03-18
  • 打赏
  • 举报
回复
看不太懂,帮顶
vpdlsr 2009-03-18
  • 打赏
  • 举报
回复
to:skison
是連FileSteam的
wanabe 2009-03-18
  • 打赏
  • 举报
回复
mark

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧