gpt4 book ai didi

c# - 内存中非常大的字符串

转载 作者:IT王子 更新时间:2023-10-28 23:33:10 24 4
gpt4 key购买 nike

我正在编写一个程序,用于将 100 多个 MB 字符串数据(接近演出)格式化为 xml == 我需要将其作为对 HTTP (GET) 请求的响应返回。

我正在使用 StringWriter/XmlWriter 在循环中构建记录的 XML 并返回

using (StringWriter writer = new StringWriter())
using (writer = XmlWriter.Create(writer, settings)) //where settings are the xml props

writer.ToString()

在测试过程中,我看到了一些 -- 内存不足异常 -- 并且对如何找到解决方案一无所知?你们对响应的内存优化传递有什么建议吗?

是否有一种内存有效的数据编码方式?或者可能对数据进行分 block ——如果不将整个东西构建到一个巨大的字符串对象中,我就是想不出如何返回它

谢谢

--一些澄清——如 josh 所述,这是一个通过千兆以太网链接的 asp .net webservices 应用程序。我对它不是很熟悉,所以还是有点学习曲线。

我正在使用 XMLWriter 创建 XML 并使用 String 从中创建一个字符串

一些统计数据——响应 xml 大小 = 大约 385 兆(我的数据大小会很快增长到远不止这些)

由内存分析器计算的字符串对象大小 = 峰值为 605MB

感谢所有回复的人......

最佳答案

使用包裹在 Reponse.OutputStream 周围的 XmlTextWriter 将 XML 发送到客户端并定期刷新响应。这样一来,您在任何时候都不必拥有超过几 MB 的内存(至少对于发送到客户端而言)。

关于c# - 内存中非常大的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com