我在从 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% 的时间里效率更高。
我似乎无法就此达成普遍共识。任何输入将不胜感激。