我正在编写一个程序,用于将数百MB的字符串数据(接近1GB)格式化为XML,并要求将其作为HTTP(GET)请求的响应返回。
我在循环中使用StringWriter/XmlWriter来构建记录的XML,并返回该XML。
using (StringWriter writer = new StringWriter())
using (writer = XmlWriter.Create(writer, settings)) //where settings are the xml props
writer.ToString()
在测试过程中,我遇到了一些内存不足异常,对于如何找到解决方案感到困惑。你们有没有关于优化响应内存的建议?是否有一种内存效率更高的编码方式?或者分块数据是否可行——我只是无法想象如何在不将整个数据构建为一个巨大的字符串对象的情况下返回它。谢谢!
-- 一些澄清 -- 这是一个基于 ASP.NET WebServices 应用程序,连接速度为千兆以太网,正如 Josh 所指出的那样。由于我并不太熟悉它,所以还有一些学习曲线。
我正在使用 XMLWriter 创建 XML 并将其转换为字符串。
一些统计数据:响应 XML 大小约为 385 MB(我的数据大小将很快增长到更多),通过内存分析器计算的字符串对象大小峰值为 605MB。感谢所有回答的人......