我想知道通过此方法从我们的服务器发送到浏览器的文件之间的性能(或任何其他重要因素)是否存在任何差异:
For i = 1 To fileSize \ chunk
If Not Response.IsClientConnected Then Exit For
Response.BinaryWrite stream.Read(chunk)
Response.Flush
Next
VS
IIS附带的旧普通文件访问方法。
出于安全原因,我们正在处理文件管理器处理程序,并希望了解性能损失。
答案 0 :(得分:2)
两种方法都需要将二进制数据推送到浏览器。
想知道什么是性能影响。
就像在这种情况下一样:衡量。尝试优化IIS上的设置并再次测量,直到获得最佳解决方案。
答案 1 :(得分:2)
除非你正在处理一个相当大的文件,否则不应该有明显的区别。由于您手动创建块并刷新缓冲区,因此您将有更多的数据包流量到达客户端(数据包的有效负载或最后一个数据包将仅部分满)。但是,正如我所说,除非你有一个大文件,否则这可能不会引人注意,即使这样也不太可能出现。
答案 2 :(得分:0)
根据我的经验,使用脚本分解内容远比IIS高度优化的静态文件处理慢。当其他糟糕的选择(比如使用4096字节作为缓冲区大小)时,我看到的因素太多,取决于太多因素。
IIS7上的某些内容可能有所改进,但是如果您可以将文件作为静态内容获取,我肯定会使用它。