繁体   English   中英

读取大文件的最佳方法

[英]Best approach to reading large files

我当前正在开发一个程序,该程序会读取并写入XML文件。 尽管这是一项简单的任务,但我担心将来的问题。

我的代码从XML读取流数据,并检查每个元素<x>直到找到一个符合条件的元素为止,此方法的运行速度非常快,因为该文件当前具有大约100个<x>元素,但是当添加了更多元素时这项任务将非常慢,特别是如果与标准匹配的元素是每个大文件中的最后一个元素。

我应该采取什么方法来最大程度地减少这种影响? 我当时正在考虑将文件拆分为较小的文件(每个文件最多包含1000个元素),并同时读取其中的各种文件。 这是正确的方法吗?

我正在用C#进行编码,以防它与特定于语言的方法有关。

您应该使用.Net的可用XML API之一。 哪一个取决于XML文件的大小。 这个问题中 ,在XDocument (Linq-to-Xml)和XmlReader之间进行了讨论。 总结一下:如果文件适合内存,请使用XDocument 如果没有,请使用XmlReader

在您的情况下,这听起来像一个批处理过程。 也许此链接: https : //www.codeproject.com/Articles/1155341/Batch-Processing-Patterns-with-Taskling将为您提供帮助。 我从来没有在C#中这样做,但是在Java中,这是解决此类任务的好方法。 希望对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM