【发布时间】:2011-11-02 12:35:49
【问题描述】:
我们在一个应用程序中使用#ziplib(找到here),该应用程序为偶尔连接的客户端应用程序从服务器同步文件。
我的问题是,使用这种算法,什么时候值得花费执行时间来进行文件的实际压缩?据推测,如果只同步一个小文本文件,压缩时间将不足以减少传输的大小,实际上会减慢整个过程。
由于压缩时间配置文件会根据文件数量、文件类型和这些文件的大小而变化,有没有一种好方法可以通过编程方式发现何时应该压缩文件以及何时应该通过他们原样?在我们的应用程序中,文件几乎总是照片,尽管照片的类型和大小可能会发生变化。
我还没有编写实际的文件传输逻辑,但希望使用System.Net.WebClient 来执行此操作,但我也愿意使用替代方案来节省执行时间。
更新:随着讨论的发展,“压缩还是不压缩”是错误的问题吗?是否应该将重点放在用压缩的 WCF 流量或类似的东西替换旧的 System.Net.WebClient 方法?该实用程序的数据库同步部分已经使用 Microsoft Synchronization Framework 和 WCF,因此我当然对此持开放态度。我们现在可以做的任何限制网络流量的事情对我们的客户来说都是巨大的。
【问题讨论】:
-
带 zip 的照片不会变小
-
至少如果它们以已经压缩的格式存储,例如 jpeg 或 png。另一方面,未压缩的位图/TIF 可以压缩一点。
-
我认为压缩是否有用主要取决于与上传带宽相比的可用 CPU 能力。看看许多国家/地区消费者互联网的可怕上传率,即使是很小的压缩率也可能是一个胜利。
-
几率很低,特别是如果它是一个已经常规压缩的 http 传输。先让它在没有它的情况下工作,现在你可以在 1.1 版本中实际测试和比较
-
@adrianm 我正在开发的实用程序实际上是进入一个供多个应用程序使用的内部框架。当我说该应用程序仅处理照片时,那是相当短视的。我们还有其他应用程序可以同步各种文本格式的技术文档和紧急资源,最终也将使用这种新模型。
标签: c# .net zip sharpziplib