![](/img/trans.png)
[英]Memory free up string builder an d byte[] in c#: Out of memory exception
[英]How to handle out of memory exception string builder
我有希望返回字符串的此方法,但是该字符串可能很大(以GB为单位)。 当前,这会遇到内存不足异常。
我以为我会写一个文件(随机文件名),然后读它删除该文件并发回响应。 尝试了MemoryStream
和StreamWriter
,它们也遇到内存不足异常。
不想使用容量初始化StringBuilder
,因为大小未知,我认为它需要连续的内存块。
解决此问题的最佳方法是什么?
public string Result()
{
StringBuilder response = new StringBuilder();
for (int i = 1; i <= Int.Max; i++)
{
response.Append("keep adding some text {0}", i);
response.Append(Environment.NewLine);
}
return response.ToString();
}
即使可以解决StringBuilder
上的内存问题,通过调用response.ToString()
生成的字符串也将大于.NET中字符串的最大长度,请参阅: https : //stackoverflow.com/a/140749/ 3997704
因此,您将必须使函数将其结果存储在其他位置,例如存储在文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.