如何计算上传大文件的最佳块大小

时间:2010-09-09 03:29:46

标签: c# asp.net silverlight wcf chunking

是否存在处理大文件的最佳块大小?我有一个上传服务(WCF),用于接受几百兆字节的文件上传。

我已经尝试了4KB,8KB到1MB的块大小。更大的块大小有利于提高性能(更快的处理速度),但它会以内存为代价。

那么,有没有办法在上传文件时计算出最佳的块大小。如何进行这样的计算呢?它是可用内存和客户端,CPU和网络带宽的组合,它决定了最佳尺寸吗?

干杯

编辑:可能应该提到客户端应用程序将处于silverlight状态。

1 个答案:

答案 0 :(得分:7)

如果您担心资源不足,那么最佳可能最好通过根据系统的可用内存评估您的Peek上传并发性来确定。一次进行多少次同步上传将是您可能进行的任何计算中的关键变量。您所要做的就是确保您有足够的内存来处理上载并发,而这实现起来相当简单。内存很便宜,在您达到并发性会超出内存可用性的程度之前,您可能会耗尽网络带宽。

在性能方面,这不是那种在应用程序设计和开发过程中可以真正优化的东西。您必须拥有系统,用户才能真实地上传文件,然后您可以监控实际的运行时性能。

尝试与网络的TCP / IP窗口大小匹配的块大小。这就像你在设计时真正需要的那样最佳。