3

我在从 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;
 }

如果最终目标是将 webresponse 的内容放入字节数组中,这是最有效的方法吗?在过去,我只会分块读取流。有人告诉我,在 90% 的时间里(当 JSON 响应低于 85k 时),这比 CopyTo 效率低,但在另外 10% 的时间里效率更高。

我似乎无法就此达成普遍共识。任何输入将不胜感激。

4

0 回答 0