问题描述
|
我想创建一个c#控制台应用程序以获取大约1000000行数据。
在代码中添加一些过滤逻辑并生成xml Feed。
我正在使用的那一个工作正常,但对于25万行数据,却超出了内存不足的异常范围。
这是我在Web应用程序中使用的代码示例,需要更改其控制台应用程序并使其高效。
var xrFeed = new XmlTextWriter(File.Create(@\"c:\\Items.xml\"),Encoding.UTF8);
xrFeed.WriteStartDocument();
xrFeed.WriteStartElement(\"Name\");
IEnumerable<ItemClass> items = _source.GetItems();
if (items != null)
{
foreach (var i in items)
{
xrFeed.WriteStartElement(\"ad\");
xrFeed.WriteStartElement(\"id\");
xrFeed.WriteCData(m.ListingId.ToString());
xrFeed.WriteEndElement();
xrFeed.WriteStartElement(\"firstParameter\");
xrFeed.WriteCData(\"parameter\");
xrFeed.WriteEndElement();
xrFeed.WriteStartElement(\"secondParameter\");
xrFeed.WriteCData(\"parameter2\");
xrFeed.WriteEndElement();
xrFeed.WriteStartElement(\"thirdParameter\");
xrFeed.WriteCData(\"parameter3\");
xrFeed.WriteEndElement();
xrFeed.WriteEndElement();
}
xrFeed.WriteEndElement();
xrFeed.WriteEndDocument();
xrFeed.Flush();
xrFeed.Close();
Response.End();
DataBind();
}
解决方法
尝试每隔1000个项目冲洗一次写入器。另外,您可能想从数据源中部分检索数据。