CSVParser(LINQtoCSV VS LumenWorks.Framework.IO)
Posted on 2013-12-09 15:38 xiaomaogong 阅读(440) 评论(0) 编辑 收藏 举报最近遇到一个大csv文件解析问题,场景是需要读取某个比较大的csv文件(8000+条数据)然后进行一些验证并把没有通过验证的数据再输出.
起初尝试过LINQtoCSV
•好处:能够将csv文件反序列化成相应的对象,便于之后用Linq的验证操作
•遇到的问题:性能低下,需要话20+分钟反序列号(8000+数据)
解决方案:使用 LumenWorks.Framework.IO(内部参照的是System.IO.StreamReader)
•优点:高效,只花几秒钟读完整个文件(8000+数据)
•不足:不能用面向对象的方式方便地进行复杂的数据处理
总结:当对一个数据量比较大的文件进行操作的时候,且如果在数据处理逻辑要求不复杂的情况下,可以不采用linq(不用对象的形式避免反序列话的性能开销),而是应该直接通过流式读取解析以获得更好的性能。