HttpWebResponses:MemoryStream.CopyTo与chunking的效率如何?

时间:2015-11-25 21:18:23

标签: c# json httpwebresponse memorystream large-object-heap

我遇到了从API下载大型JSON对象的问题。通常,这些文件很小,但偶尔会很大(100k +)。这会使大对象堆起作用,并且存在一些性能问题。

以下是返回响应字节的下载方法的内容。

using (var httpWebResponse = (HttpWebResponse)request.GetResponse())
{
    byte[] responseBytes;
    using (var responseStream = httpWebResponse.GetResponseStream())
    {
        using (var memoryStream = new MemoryStream())
        {
            if (responseStream != null)
            {
               responseStream.CopyTo(memoryStream);
            }
            responseBytes = memoryStream.ToArray();
        }
     }
     return responseBytes;
 }

如果最终目标是将web响应的内容放入字节数组中,这是最有效的方法吗?在过去,我只是以块的形式阅读流。我被告知,在90%的情况下(当JSON响应低于85k时),这比CopyTo效率低,但对于其他10%则更好。

我似乎无法就此达成一致意见。任何意见都将不胜感激。

0 个答案:

没有答案